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