简介:
本篇文章简单介绍flask蓝图的简介和使用。不可能在app.py中注册所有的应用,通过使用蓝图可以将各个应用的分隔开来,增加代码可读性,降低其耦合度。
Flask 用 蓝图(blueprints) 的概念来在一个应用中或跨应用制作应用组件和支持通用的模式。蓝图很好地简化了大型应用工作的方式,并提供给 Flask 扩展在应用上注册操作的核心方法。一个 Blueprint 对象与 Flask 应用对象的工作方式很像,但它确实不是一个应用,而是一个描述如何构建或扩展应用的 蓝图 。
缺点:
1. 蓝图是模块级别的拆分,而不是视图函数级别的拆分。
2. 对book的不同操作,是通过路由后缀的不同而实现不同的功能,比如获取book的路由是/book/get_book,而创建book的路由是/book/create_book,如果对book有很多操作的话,/book/都是重复的。
使用
1. 创建蓝图视图函数
app/api/user.py
from flask import Blueprint
user = Blueprint('user',__name__)
@user.route("/user/get")def get_user():
return "this is user"
app/api/book.py
from flask import Blueprint
book = Blueprint('book', __name__)
@book.route("/book/get")def get_book():
return "this is book"
**1. 将蓝图注册到app中**
app.py
def register_blueprints(app):
from app.api.book import book
from app.api.user import user
app.register_blueprint(book)
app.register_blueprint(user)
def create_app():
app = Flask(__name__)
register_blueprints(app)
if __name__ == '__main__':
app = create_app()
app.run(debug=True)
1. 测试
http://127.0.0.1:5000/user/get
http://127.0.0.1:5000/book/get