【flask + vue 前后端分離博客】創建第一個 Flask RESTFul(一)


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM