Flask環境github部署(十三)

善良小郎君發表於2018-06-09

(1) github專案搭建

1 連線GitHub

hostnamectl set-hostname flask-dev  # 設定 hostname,一般是主機名可以不更改
ssh-keygen                          # 生成SSH公鑰,一直enter代表不設定密碼
cd .ssh/         #存放祕鑰檔案,id_rsa是私鑰檔案,id_rsa.pub是公鑰檔案
vim id_rsa.pub   #編輯祕鑰,全部複製公鑰新增到  賬戶settings >> SSH-keys  >> add SSHkeys

2 配置git

git config --global user.email "郵箱"   #設定使用者名稱與郵箱,作為標識
git config --global user.name "賬戶名"

vim ~/.gitconfig   #新增配置資訊
    [core]
      repositoryformatversion = 0
      filemode = true
      bare = false
      logallrefupdates = true
      editor = vim

3 配置虛擬環境

pip3 install virtualenv   #安裝virtualenv
virtualenv flaskenv   #建立flaskenv虛擬環境
source env/bin/activate   #啟用虛擬環境

4 安裝flask

pip3 install flask   #安裝flask
pip freeze  > requirements.txt   #在requirements.txt生成當前環境下所需要安裝的python軟體包列表
pip install -r requirements.txt  #生成 requirements.txt 檔案,更方便我們去安裝需要的包
deactivate  #退出當前的虛擬環境

5 建立github專案

# 讓 Git 忽略對整個 env 目錄和所有 *.pyc 檔案的處理,讓 Git 僅處理自己的程式碼檔案
vim .gitignore    
    env/
    *.pyc
mkdir gitblog  #建立專案名
cd gitblog

# 建立 README 檔案
echo "# welcome to why blog! " >> README.md

# 初始化 git 倉庫
git init

# 將剛建立的檔案都加入 git 緩衝區
git add .

# 提交改動檔案到 git 倉庫
git commit -m "first commit"

# 將專案釋出到 github
git remote add origin https://github.com/使用者名稱/blog.git
git push -u origin master

(2) 專案簡單流程

1 專案配置檔案config.py/settings.py

#配置所有環境的基類
class Config:
    SECRET_KEY = `JAGAFAjjfdsfdasdas`
    SQLALCHEMY_TRACK_MODIFITIONS = False

#測試
class TestingConfig(Config):
    SQLALCHEMY_DATABASE_URI = `mysql+pymysql://root:xxx@127.0.0.1:3306/xxxblog`
    pass
#開發
class DevelopmentConfig(Config):
    SQLALCHEMY_DATABASE_URI = `mysql+pymysql://root:xxx@127.0.0.1:3306/xxxblog`
    DEBUG = True
#生產
class ProductionConfig(Config):
    SQLALCHEMY_DATABASE_URI = `mysql+pymysql://root:xxx@127.0.0.1:3306/xxxblog`
    pass

sqlalchemy通過特殊的URI字串建立資料庫的連線
#  database_type+driver://user:password@sql_server_ip:port/database_name

2 建立主啟動檔案manage.py

​ 該檔案是 Flask 應用的核心,也是程式的入口

from flask import Flask
from config import DevelopmentConfig
from flask_script import Manager

app = Flask(__name__)
manager = Manager(app)
# 使用 config.from_object() 而不使用 app.config[`DEBUG`] 是因為這樣可以載入 class DevConfig 的配置變數集合,而不需要一項一項的新增和修改。
app.config.from_object(DevConfig)

# 指定 URL=`/` 的路由規則
@app.route(`/`)
def index():
    return `<h1>index</h1>`

if __name__ == `__main__`:
    manager.run()

#注意 : 通過 manager.py 來執行命令列是十分有必要的,因為一些 Flask 的擴充套件只有在 Flask app object 被建立之後才會被初始化,所以非常依賴於應用上下
文的環境,在沒有 Flask app object 時,直接執行預設的 Python CLI 會導致
這些 Flask 擴充套件返回錯誤。

3 執行開發伺服器

python manage.py runserver -d -r  
python3 當前啟動檔名.py runserver  可選引數
#可選引數如下:
-h  主機名
-p  埠號
--threaded 開啟多執行緒
-d 開啟除錯模式
-r 程式碼修改後重新載入

4 Models與SQLAlchemy

  1. 在 Web 應用程式開發中引入了 Models 為了 —— 將關係型資料轉化為一個物件型別
  2. SQLAlchemy 是一個 Python 包,其最底層包裝了對資料庫進入操作的統一介面,然後在最上層提供了物件關係對映(ORM)的實現。
  3. SQLAlchemy-ORM 可以把大量的不同型別的資料庫中的資料,轉換成 Python 物件的集合。即SQLAlchemy-ORM 可以將對這些資料物件的操作轉化為對資料庫的操作。
  4. Flask 為我們提供了 Flask SQLAlchemy,其實就是在 SQLAlchemy 上提供了一層包裝,讓 SQLAlchemy 可以結合 Flask 的一些特性來使用。


相關文章