1. 代碼管理
1.1 創建倉庫
github
上創建倉庫:flask-vuejs-madblog
,並選擇開源協議為 MIT License
(也可以選擇 gitee
,速度快一些比之 github
)。
克隆倉庫到本地
# 找一個地址,打開 Git Bash
cd F:\My Projects\
git clone https://gitee.com/hubery_jun/flask-vuejs-madblog
1.2 創建分支
創建 dev
分支,以后都在這個分支上進行開發:
$ git checkout - b dev # 創建 dev 分支
$ git branch # 查看當前分支
* dev
master
2. 項目配置
配置 Python 虛擬環境
# 打開 cmd
# 新建虛擬環境 flask-vuejs
mkvirtualenv -p C:\Python36\python36.exe flask-vuejs
# 安裝 flask
pip install flask
# 切換到倉庫所在位置,新建 flask 項目
(flask-vuejs) F:\Envs>cd F:\My Projects\flask-vuejs-madblog\
(flask-vuejs) F:\Envs>mkdir back-end # 其中 back-end 為 flask 項目文件
(flask-vuejs) F:\My Projects\flask-vuejs-madblog\> cd back-end
# 生成 requirements.txt
(flask-vuejs) F:\My Projects\flask-vuejs-madblog\back-end>pip freeze > requirements.txt
配置 .gitignore
文件
打開 Git Bash
:
# 新建 .gitignore 文件
hj@DESKTOP-JUS39UG MINGW32 /f/My Projects/flask-vuejs-madblog/back-end (dev)
$ vim .gitignore
# 內容如下
.idea/
__pycache__/
venv/
.env
app.db
madblog.log*
項目結構
back-end:.
├─app # 應用
│ ├─api # api 接口
│ │ └─__init__.py
│ │ └─ping.py
│ └─__init__.py
└─.env # 系統環境變量
└─.gitignore # 忽略文件
└─config.py # 配置文件
└─madblog.py # 啟動文件
└─requirements.txt # 項目依賴包
2.1 應用工廠
使用 pycharm
打開 back-end/
項目,創建包文件 app
,編輯 app/__init__.py
:
from flask import Flask
from config import Config
def create_app(config_class=Config):
app = Flask(__name__)
app.config.from_object(config_class)
# 注冊藍圖 blueprint
from app.api import bp as api_bp
app.register_blueprint(api_bp, url_prefix="/api")
return app
其作用是:加載配置文件,注冊藍圖
2.2 API 藍圖
藍圖的作用類似於 Django APP
,可以區分不同的應用(路由);創建包文件:app/api
,編輯 app/api/__init__.py
:
from flask import Blueprint
bp = Blueprint('api', __name__)
# 寫在最后是為了防止循環導入,ping.py文件也會導入 bp
from app.api import ping
新建第一個視圖函數 app/api/ping.py
:
from flask import jsonify
from app.api import bp
@bp.route('/ping', methods=['GET'])
def ping():
"""測試 API 是否通"""
return jsonify('Test API pass!')
2.3 啟動文件
新建 back-end/madblog.py
,用於啟動應用工廠函數:
from app import create_app
app = create_app()
2.4 配置文件
新建 back-end/config.py
:
import os
from dotenv import load_dotenv
basedir = os.path.abspath(os.path.dirname(__file__))
load_dotenv(os.path.join(basedir, '.env'), encoding='utf-8')
class Config(object):
pass
注意到我們這里有使用到 .env
系統環境變量,我們將使用 dotenv
模塊來讀取環境變量信息,先安裝這個包:
pip install dotenv
pip freeze > requirements.txt
新建 back-end/.env
文件:
FLASK_APP=madblog.py
FLASK_DEBUG=1
2.5 啟動項目
使用 pycharm
啟動項目,也可以在終端執行:flask run
,測試 api
是否暢通,訪問:http://127.0.0.1:5000/api/ping
。
3. 提交代碼
合並分支並提交
$ git add .
$ git commit -m "1. 后端 Flask 測試接口"
# 以上操作都是在 dev 分支,現在切換到 master 分支(合並分支前必須切換到別的分支)
$ git checkout master
$ git branch # 查看當前分支
$ git merge dev # 合並分支(將 dev 合並到 master)
$ git branch -d dev # 刪除 dev 分支
# 提交
$ git push -u origin master
打標簽
打標簽的目的與 commit
的道理相似,就是給當前版本做一個標記,以便回退到此版本;有時使用 commit-sha1
,大家都記不住那條冗長的 sha1
碼,所以用tag標簽來做記錄:
$ git tag v0.1 # 打標簽
$ git tag # 查看當前標簽
v0.1
# 查看某個標簽的內容
$ git show v0.1
# 將標簽推到遠程(單個)
$ git push origin v0.1
同步所有標簽:
git push --tags
# 或者
git push origin --tags