Flask学习总结笔记(7) -- 程序文件组织结构
2017-01-03 22:11
495 查看
前面在Flask学习中我们采用了一种简单的文件夹组织形式。但是对于大型程序而言,将所有的代码放在一起不是一种明智的选择。Flask提供了一种蓝本(Blueprint)的程序组织方式,可以对大型程序进行模块化的分割,使得代码扩展性和可读性大为提高。
上面定义了2个蓝本模块,分别是main和info。下面以main为例子进行说明。
通过实例化Blueprint类的对象可以创建一个蓝本。程序的路由信息保存在
(1)
(2)
上面使用的是app_errorhandler,与前面使用的errorhandler修饰器稍有不同。
0x01 文件结构
上面定义了2个蓝本模块,分别是main和info。下面以main为例子进行说明。
0x02创建蓝本
文件app/main/__init__.py添加定义:
from flask import Blueprint main=Blueprint('admin',__name__) from . import views,errors
通过实例化Blueprint类的对象可以创建一个蓝本。程序的路由信息保存在
app/main/views.py中,错误处理信息保存在
app/main/errors.py中。
(1)
app/main/views.py
from . import main from 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_template from 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 main app.register_blueprint(main,url_prefix='/admin')
0x04构造url
在蓝本模式下,url_for函数的用法稍有不同。url_for定位参数需要带上蓝本名称:url_for('main.test')
0x05后记
其他部分的文件含义就不赘述了,与以前讲解的Flask内容类似。使用Blueprint蓝本模式,是Flask构建大型程序的基础,有必要熟练掌握其中的用法。需要强调一点的是,使用蓝本模式容易造成import循环导入模块的问题,大家可以在使用过程中加以总结,如果有需要,可以留言大家一起讨论交流。相关文章推荐
- 如何使用 Flask 编写 Python Web API
- 信息安全聚合 Sec-News 的重构之路
- ruby的程序结构介绍
- 在python的WEB框架Flask中使用多个配置文件的解决方法
- C 语言程序结构示例解析
- python使用Flask框架获取用户IP地址的方法
- Python的Flask框架中Flask-Admin库的简单入门指引
- Python Web框架Flask中使用百度云存储BCS实例
- bootstrap flask登录页面编写实例
- Python的Flask开发框架简单上手笔记
- Python的Flask站点中集成xhEditor文本编辑器的教程
- 在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
- Python的Flask框架中的Jinja2模板引擎学习教程
- 在Python的Flask框架中验证注册用户的Email的方法
- Python的Flask框架中SERVER_NAME域名项的配置教程
- Flask框架中密码的加盐哈希加密和验证功能的用法详解
- 在Python的Flask框架下收发电子邮件的教程
- Python的Flask框架应用程序实现使用QQ账号登录的方法
- 从源码解析Python的Flask框架中request对象的用法