公司网站开发费用如何入账,wordpress网站阿里云备案,设备租赁网站建设,网络平台开发蓝图 引言一、为什么使用蓝图#xff1f;二、蓝图的概念三、创建蓝图四、注册蓝图五、分享我的creat_app方法六、写在最后 引言
falsk是个轻量级的框架#xff0c;核心实现简单#xff0c;但同事可以让开发人员自由的扩展功能。开发中#xff0c;使用模块导入的方式。
一… 蓝图 引言一、为什么使用蓝图二、蓝图的概念三、创建蓝图四、注册蓝图五、分享我的creat_app方法六、写在最后 引言
falsk是个轻量级的框架核心实现简单但同事可以让开发人员自由的扩展功能。开发中使用模块导入的方式。
一、为什么使用蓝图
将一个应用程序分解为一组蓝图。这对于较大的应用程序是理想的一个项目可以实例化一个应用程序对象初始化多个扩展并注册许多蓝图。-在URL前缀和或子域的应用程序上注册蓝图。URL前缀和或子域中的参数成为蓝图中所有视图函数的通用视图参数缺省情况下。在具有不同URL规则的应用程序上多次注册蓝图。通过蓝图提供模板过滤器、静态文件、模板和其他实用程序。蓝图不必执行应用或视图函数。当初始化一个Flask 扩展时为以上任意一种用途注册一个蓝图。
flask中的蓝图不是可插入的应用程序因为它实际上不是一个应用程序——它是一组可以在应用程序上注册的操作甚至可以多次注册。
如果使用蓝图那么应用会在 Flask 层中进行管理共享配置并且可以根据需要更改注册的应用程序对象。缺点是一旦创建了一个应用程序只有销毁整个应用对象才能注销蓝图。
二、蓝图的概念
蓝图的基本概念是在蓝图被注册到应用之后所要执行的操作的集合。当分配请求时Flask 会把蓝图和视图函数关联起来并生成两个端点之前的 URL 。
三、创建蓝图
因为开发是以模块划分的所以新增一个blog文件夹在里边新建一个__init__.py文件源码如下
from flask import Blueprint, jsonifyblog_base_blueprint Blueprint(blog, __name__, url_prefix/api)# 获取所有博客文章列表
blog_base_blueprint.route(/posts, methods[GET])
def get_posts():return jsonify({code: 0,msg: success,})这里构建了一个名为blog_base_blueprint 的蓝图并使用blog_base_blueprint绑定了一个函数蓝图会记录下所登记的get_posts 函数。当以后在应用中注册蓝图时这个函数会被注册到应用中。
个人觉着蓝图就像php里的控制器路由文件一起使用一样在蓝图里我们需要定义路由以及方法。
四、注册蓝图
这里可以参考文档哈文档里很详细本人用的就是普通的注册方式
from project.blog import blog_base_blueprintapp.register_blueprint(blog_base_blueprint)注意注册蓝图时注意导入的顺序若是出现ImportError: cannot import name ‘db‘之类的异常请参考这里解决重复导入的异常
五、分享我的creat_app方法
走到这里我的源码如下
import osfrom flask import Flask
from flask_sqlalchemy import SQLAlchemy
from project.config import config # 导入存储配置的字典# 创建数据库连接
db SQLAlchemy()from project.blog import blog_base_blueprintdef create_app(config_nameNone):if config_name is None:config_name os.getenv(FLASK_ENV, development) # 从环境变量中获取FLASK_ENV并设置默认值app Flask(project)# setup config,导入配置根据配置环境实例化app.config.from_object(config[config_name])# 注册扩展register_extension(app)# 注册蓝图register_blueprint(app)return app# 注册flask拓展
def register_extension(app: Flask):db.init_app(app)# 注册蓝图
def register_blueprint(app: Flask):app.register_blueprint(blog_base_blueprint)
六、写在最后
宣传一波大家若是有人想北京租房可以联系我主要是物资学院、通州北关、北苑、草房的房子。注我不是中介哟我也不打算转行做中介是我靠谱的朋友在做