Flask蓝图
2022/7/14 6:21:30
本文主要是介绍Flask蓝图,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Flask蓝图
概述:蓝图分为两种方式,按照功能划分,与按照结构划分。
1.小蓝图
说明:按照功能划分蓝图。
在视图函数中创建多个 py 文件,每个 py 文件中的视图函数都可以注册到蓝图中;
目录结构如图所示:
manage.py 为启动文件:
# -*- coding: utf-8 -*- from pythonProject import create_app app = create_app() # 调用文件创建 app if __name__ == '__main__': app.run()
pythonProject /__init__.py
文件是包的标志文件。通常说的导入一个包即为导入它的__init__.py
文件;因此我们只需要在__init__.py
中创建对应的 app 即可。
from flask import Flask from .views.account import ac_blueprint def create_app(): app = Flask(__name__) app.register_blueprint(ac_blueprint,url_prefix = '/web') # /web 相当于路由分发的前置 return app
在小蓝图内编写视图函数
# -*- coding: utf-8 -*- from flask import Blueprint ac_blueprint = Blueprint('ac',__name__) # 将路由注册到蓝图内 @ac_blueprint.route('/f1') def func(): return "f1"
2.大蓝图
说明:按照结构划分蓝图。
目录结构
补充:apps 有的时候也可能是与项目名称相同。
# -*- coding: utf-8 -*- from apps import create_app app = create_app() if __name__ == '__main__': app.run()# 启动文件
创建 app 函数,注册蓝图。
from flask import Flask from .account import account from .admin import admin def create_app(): app = Flask(__name__) app.config.from_object('config.settings') # 加载配置文件 app.register_blueprint(account)# 注册蓝图 app.register_blueprint(admin) # 注册蓝图 return app
在每个项目中创建蓝图
# -*- coding: utf-8 -*- from flask import Blueprint admin = Blueprint("ad",__name__)
# -*- coding: utf-8 -*- from flask import Blueprint account = Blueprint("ac",__name__,template_folder='templates') # 创建蓝图,并指定相关的参数,更加具体的参数可以参考源码示例 from .views import user # 注意需要写到蓝图对象下面,不然导入的时候蓝图对象不会被加载到内存
源码示例
蓝图中视图函数的写法
# -*- coding: utf-8 -*- from flask import render_template from .. import account # 导入蓝图,因此需要在蓝图被创建后将视图模块导入。 @account.route('/login') def login(): return render_template('login.html')
相关 html 文件。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>内部登录</h1> </body> </html>
继续努力,终成大器。
这篇关于Flask蓝图的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?