PythonFlask蓝图按功能模块拆分
随着flask程序越来越复杂,我们需要对程序进行模块化的处理,之前学习过python的模块化管理,于是针对一个简单的flask程序进行模块化处理
简单来说,Blueprint 是一个存储视图方法的容器,这些操作在这个Blueprint 被注册到一个应用之后就可以被调用,Flask 可以通过Blueprint来组织URL以及处理请求。
Flask使用Blueprint让应用实现模块化,在Flask中,Blueprint具有如下属性:
- 一个项目可以具有多个Blueprint
- 可以将一个Blueprint注册到任何一个未使用的URL下比如 “/”、“/sample”或者子域名
- 在一个应用中,一个模块可以注册多次
- Blueprint可以单独具有自己的模板、静态文件或者其它的通用操作方法,它并不是必须要实现应用的视图和函数的
- 在一个应用初始化时,就应该要注册需要使用的Blueprint
但是一个Blueprint并不是一个完整的应用,它不能独立于应用运行,而必须要注册到某一个应用中。
Blueprint对象用起来和一个应用/Flask对象差不多,最大的区别在于一个 蓝图对象没有办法独立运行,必须将它注册到一个应用对象上才能生效
使用蓝图可以分为以下操作:
1.models拆分,主文件初始化db
-
from flask import Flask
-
# 导入的db
-
from models import db
-
app = Flask(__name__, static_folder='assets')
-
# 从配置文件加载配置
-
app.config.from_object('conf.Config')
-
-
# 数据库初始化,绑定到app
-
db.init_app(app)
2.创建一个蓝图的包,在这个蓝图目录下, 创建views.py文件,保存当前蓝图使用的视图函数
-
from flask import Blueprint, render_template
-
-
accounts = Blueprint("accounts", __name__, template_folder="templates", static_folder="../assets")
-
-
-
-
def login():
-
""" 登录页面 """
-
return render_template('login.html')
-
-
-
-
def register():
-
""" 注册 """
-
return render_template('register.html')
3.注册蓝图下的视图函数到app
- 当我们在应用对象上注册一个蓝图时,可以指定一个url_prefix关键字参数(这个参数默认是/)
-
from flask import Flask
-
from models import db
-
-
from accounts.views import accounts
-
from qa.views import qa
-
-
app = Flask(__name__, static_folder='assets')
-
# 从配置文件加载配置
-
app.config.from_object('conf.Config')
-
-
# 数据库初始化,绑定到app
-
db.init_app(app)
-
-
# 注册蓝图
-
app.register_blueprint(accounts, url_prefix="/accounts")
-
app.register_blueprint(qa, url_prefix="/qa")
-
-
-
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgfikbf
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01