# wsyffw **Repository Path**: wangsuyin/wsyffw ## Basic Information - **Project Name**: wsyffw - **Description**: 一个基于flask 的后端web api框架 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2020-03-07 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 介绍 这是一个基于flask的简单web后端api框架,用于减少重复代码的书写。 按以下步骤查看效果: 1、运行app.py 2、浏览器查看http://127.0.0.1:5000/v1/school/school_a/class 3、浏览器查看http://127.0.0.1:5000/v1/food/ # 使用说明 1.blueprints文件夹下用于编写api蓝图代码。 2.区分版本。v1即api版本。 3.在v1中新建_bps模块,用于创建【版本蓝图】对象,示例如下: **注意:蓝图变量的命名必须以 bp_ 为开头。** ``` def _create_bp(name): return wsyffw_flask.create_version_blueprint('v1', name, __name__, url_prefix='/'+name) bp_food =_create_bp('food') bp_school =_create_bp('school') ``` 4.创建与蓝图名称相对应的模块或包。(如果路由细分较多,则创建包为佳)。 如果创建模块,则从_bps中导入已创建的蓝图对象绑定路由。如下: ``` from ._bps import bp_food from flask import jsonify @bp_food.route('/') def foods(): return jsonify({'code':200,'msg':'OK','data':{'foods':[1,2,3,4]}}) ``` 如果创建包,则在包的init模块中编写如下代码,导入包下的子模块,自动绑定路由。如果不调用此函数,该包下的蓝图将不会被注册。: ``` wsyffw_flask.import_submodule(__name__, __file__) ``` 5.在包下的模块中,可使用 wsyffw_flask.create_bp_route 创建新一级的路由细分。 ``` from .._bps import bp_school bp_school_school_a_route = wsyffw_flask.create_bp_route(bp_school, '/school_a') @bp_school_school_a_route('/class', methods=['GET']) def classes(): return {'code':200,'msg':'OK','data':{'classes':[1,2,3,4]}} ``` 6.创建flask app对象后,调用 wsyffw_flask.register_blueprints(app)注册blueprints下的所有蓝图。 ``` app = Flask(__name__) wsyffw_flask.register_blueprints(app) ```