zoukankan      html  css  js  c++  java
  • 【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:Python36python36.exe flask-vuejs
        
    # 安装 flask
    pip install flask
    
    # 切换到仓库所在位置,新建 flask 项目
    (flask-vuejs)  F:Envs>cd F:My Projectsflask-vuejs-madblog
    (flask-vuejs)  F:Envs>mkdir back-end		# 其中 back-end 为 flask 项目文件
    
    (flask-vuejs)  F:My Projectsflask-vuejs-madblog> cd back-end
        
    # 生成 requirements.txt
    (flask-vuejs)  F:My Projectsflask-vuejs-madblogack-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
    
  • 相关阅读:
    ArrayList类(转)
    通过XmlDocument读写Xml文档(转)
    js的一些常用方法
    和我一起恶补pl/sql(第三讲)
    js的跑步算法
    细说 Form (表单)(转)
    C#反射设置和读取类的属性
    显示最近30天的记录vs显示这个月的记录(pl\sql)
    nyist 637 我和你
    nyist 子串和
  • 原文地址:https://www.cnblogs.com/midworld/p/13642632.html
Copyright © 2011-2022 走看看