首页 > 其他分享 >flask 中的蓝图

flask 中的蓝图

时间:2024-07-24 14:19:54浏览次数:6  
标签:Blueprint flask 蓝图 admin static user url

1、蓝图

在一个Flask 应用项目中,如果业务视图过多,可否将以某种方式划分出的业务单元单独维护,将每个单元用到的
视图、静态文件、模板文件等独立分开?
例如从业务角度上,可将整个应用划分为用户模块单元、商品模块单元、订单模块单元,如何分别开发这些不同单
元,并最终整合到一个项目应用中?

一、蓝图介绍

在Flask中,使用蓝图Blueprint来分模块组织管理。
蓝图实际可以理解为是一个存储一组视图方法的容器对象,其具有如下特点:
一个应用可以具有多个Blueprint
可以将一个Blueprint注册到任何一个未使用的URL下比如 “/user”、“/goods”
Blueprint可以单独具有自己的模板、静态文件或者其它的通用操作方法,它并不是必须要实现应用的视图和
函数的
在一个应用初始化时,就应该要注册需要使用的Blueprint
但是一个Blueprint并不是一个完整的应用,它不能独立于应用运行,而必须要注册到某一个应用中。
二、使用步骤
使用蓝图可以分为三个步骤
1. 创建一个蓝图对象

user_bp = Blueprint('users',__name__)

2. 在这个蓝图对象上进行操作,注册路由,指定静态文件夹,注册模版过滤器

@user_bp.route('/')
def user_profile():
return 'user_profile'

3. 在应用对象上注册这个蓝图对象

app.register_blueprint(user_bp,url_prefix='/user')

三、蓝图中的静态资源和模板

 

指定蓝图的url前缀
在应用中注册蓝图时使用url_prefix 参数指定

app.register_blueprint(user_bp, url_prefix='/user')
app.register_blueprint(item_bp, url_prefix='/items')

 

蓝图中的静态资源
和应用对象不同,蓝图对象创建时不会默认注册静态目录的路由。需要我们在 创建时指定 static_folder 参数。
下面的示例将蓝图所在目录下的static_admin目录设置为静态目录

admin = Blueprint("admin",__name__,static_folder='static_admin')
app.register_blueprint(admin,url_prefix='/admin')

 

现在就可以使用/admin/static_admin/<filename> 访问static_admin 目录下的静态文件了。
也可通过static_url_path 改变访问路径

admin = Blueprint("admin",__name__,static_folder='static_admin',static_url_path='/lib')
app.register_blueprint(admin,url_prefix='/admin')

蓝图中的模板
蓝图对象默认的模板目录为系统的模版目录,可以在创建蓝图对象时使用 template_folder 关键字参数设置模板目

admin = Blueprint('admin',__name__,template_folder='my_templates')

  

 

标签:Blueprint,flask,蓝图,admin,static,user,url
From: https://www.cnblogs.com/yongheng999/p/18320806

相关文章

  • [附开题]flask框架的基于微信小程序的医院远程预约挂号系统设计与实现6ky98(python+源
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着医疗需求的日益增长和互联网技术的飞速发展,传统的医院挂号方式已难以满足患者高效、便捷的就医需求。患者往往需要长时间排队等待挂号......
  • [附开题]flask框架的基于用户行为分析的商品推荐系统APP1qut6APP(python+源码)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在移动互联网时代,电子商务平台的竞争日益激烈,如何精准地推荐商品给用户,提升用户体验与购买转化率,成为电商企业关注的焦点。传统的推荐算法......
  • [附开题]flask框架的教务管理系统q6190(源码+论文+python)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和教育改革的不断深入,教务管理工作日益复杂且重要。传统的手工管理方式已难以满足当前高校教务管理的需求,特别是在......
  • 在 Flask-SQLAlchemy 模型类中使用数据类装饰器?
    我编写了一个Flask-SQLAlchemy模型类,如下所示(来自此参考):fromflaskimportFlaskfromflask_sqlalchemyimportSQLAlchemyapp=Flask(__name__)db=SQLAlchemy(app)classUser(db.Model):__tablename__='user'user_id=db.Column(d......
  • Flask API Pytest 单元测试由于 Pyodbc 失败
    我在使用Pytest时遇到一些问题。我的FlaskAPI使用pyodbc与MSSQL服务器数据库对话。该API在Docker容器中运行,我在Mac上运行它。我有一个健康检查(根级别即localhost:5000/)路由的单元测试,如下所示:fromappimportappdeftest_healthcheck(self):......
  • flask写接口,定制日志输出以及将请求状态以及自定义日志写入文件中
    前言:无论是写接口还是写项目,配置日志是必选的;适合配置可以帮助自己排查代码逻辑问题简单说一说日志的等级以及用处1.日志等级DEBUG:10INFO:20WARN:30ERROR。40CRITICAL:50数字越大,等级越高!!2.日志用处:        DEBUG(调试):用于开发阶段的调试,开启后,会记录程序......
  • 一段时间后登录时 Flask 出现 SESSION_COOKIE_NAME 错误
    直到最近,一切都很好,但现在我的网站不断给出“SESSION_COOKIE_NAME”和“NoneType”对象没有属性“修改”错误。但令人感兴趣的是,如果我更改代码,错误如何消失一段时间并不重要。请帮助知识渊博的人这里是代码最重要的部分:importosimportplotly.expressaspximportcs50......
  • Gunicorn Flask 服务器终止最后一个请求,并显示“连接关闭但没有响应”
    Heroku上的GunicornFlask服务器在重新启动Worker之前终止了最后一个请求,导致出现503错误:“连接关闭而没有响应。”我已经分析了数百个这样的请求,每当服务器遇到“连接关闭而没有响应”时,“错误,它总是发生在特定工作程序重新启动之前的最后一次调用上。我在Guni......
  • 如何调试 python Flask [84] [CRITICAL] WORKER TIMEOUT?
    调试:gtts.tts:保存到temp.mp37月22日09:10:56PM[2024-07-2215:40:56+0000][84][严重]工作超时(pid:87)|||7月22日09:10:56PM[2024-07-2215:40:56+0000][87][INFO]工人退出(pid:87)7月22日09:10:57PM[2024-07-2215:40:57+0000][95][INF......
  • [UE 虚幻引擎] DTHmacSha 蓝图HMACSHA加密算法插件说明
    本插件可以在虚幻引擎中使用蓝图对字符串和文件进行HMACSHA加密。1.节点说明HMACSHA一共有5种加密方式,分辨是HMACSHA-1,HMACSHA-224,HMACSHA-256,HMACSHA-384,HMACSHA-512。本插件对每种加密方式提供3个节点,一般节点返回通用值,如7c4a8d09ca3762af61e59520943dc26494f8941b;t......