Flask学习总结笔记(7) -- 程序文件组织结构
来源:互联网 发布:数据分析工程师笔试题 编辑:程序博客网 时间:2024/06/10 18:25
前面在Flask学习中我们采用了一种简单的文件夹组织形式。但是对于大型程序而言,将所有的代码放在一起不是一种明智的选择。Flask提供了一种蓝本(Blueprint)的程序组织方式,可以对大型程序进行模块化的分割,使得代码扩展性和可读性大为提高。
0x01 文件结构
上面定义了2个蓝本模块,分别是main和info。下面以main为例子进行说明。
0x02创建蓝本
文件app/main/__init__.py
添加定义:
from flask import Blueprintmain=Blueprint('admin',__name__)from . import views,errors
通过实例化Blueprint类的对象可以创建一个蓝本。程序的路由信息保存在app/main/views.py
中,错误处理信息保存在app/main/errors.py
中。
(1)app/main/views.py
from . import mainfrom flask import render_template@main.route('/test/')def test(): return render_template('main/test.html'),200
(2)app/main/errors.py
from flask import render_templatefrom app.main import main@main.app_errorhandler(404)def page_not_found(e): return render_template('main/404.html'),404@main.app_errorhandler(500)def internal_server_error(e): return render_template('main/500.html'),500
上面使用的是app_errorhandler,与前面使用的errorhandler修饰器稍有不同。
0x03注册蓝本
在app/__init__.py
中添加注册蓝本的代码:
#导入蓝本from app.main import mainapp.register_blueprint(main,url_prefix='/admin')
0x04构造url
在蓝本模式下,url_for函数的用法稍有不同。url_for定位参数需要带上蓝本名称:
url_for('main.test')
0x05后记
其他部分的文件含义就不赘述了,与以前讲解的Flask内容类似。使用Blueprint蓝本模式,是Flask构建大型程序的基础,有必要熟练掌握其中的用法。需要强调一点的是,使用蓝本模式容易造成import循环导入模块的问题,大家可以在使用过程中加以总结,如果有需要,可以留言大家一起讨论交流。
0 0
- Flask学习总结笔记(7) -- 程序文件组织结构
- flask学习笔记(-结构)
- Flask学习总结笔记(2)-- Hello world程序
- flask学习笔记1【服务器程序基本结构】
- Flask学习笔记02--Flask基本结构
- CUDA学习笔记 03 cuda文件组织结构
- flask 学习之路(二) 程序的基本结构
- Flask学习笔记--7
- Flask学习总结笔记(1)-- 环境配置
- Flask学习总结笔记(3)-- Jinja2模板引擎之一
- Flask学习总结笔记(5)-- Form表单
- Flask学习总结笔记(6) -- Flask-Moment本地化日期和时间
- Flask学习总结笔记(8) -- 利用Flask-mail实现电子邮件发送功能
- Flask学习总结笔记(9) -- 利用Flask-Login维护用户登录状态
- C++程序的文件组织结构
- Flask(7)-大型程序的结构
- Flask代码结构总结
- Flask学习笔记(一)
- Unity Shader 小结
- Java学习笔记之JSP动作元素
- 生命倒计时-倒数9118日
- 错误1error C1189: #error : gl.h included before glew.h
- 线性代数复习分析(线性方程组)
- Flask学习总结笔记(7) -- 程序文件组织结构
- Angualr中的AOT(Ahead-of-Time Compilation)编译(一)
- 用flask开发个人博客(32)—— 进行表单字段的验证
- 简单FTP服务器搭建教程
- JAVA中this用法小结
- commons-csv的基本操作
- swift中添加模糊图片
- SpannableString属性详解
- 利用 Spring MVC 上传多文件到指定目录 spring upload files