flask是python的一个web应用框架,django很多人听过,flask比较少见,连创始人一开始写出来只是个笑话而已,对python3支持不太好,flask的好处是微应用,有需求的插件才使用,精简而灵活,由于灵活,要怎么创建一个项目要自己去思考怎么搭建,不像django帮你做完项目搭建的步骤。个人觉得怎么搭建一个项目也是一个学习后台架构的过程。这里不会详细介绍flask和flask各个模块的功能,留作思考与学习。
|-flasky
|-apps/
|-templates/
|-static/
|-main/
|-__init__.py
|-errors.py
|-forms.py
|-views.py
|-__init__.py
|-email.py
|-models.py
|-migrations/
|-tests/
|-__init__.py
|-test*.py
|-venv/
|-requirements.txt
|-config.py
|-manage.py
|-command.py
项目有八个顶层目录:
app的目录下是放Flask应用
migrations目录包含数据库迁移脚本
test目录下是放单元测试
venv是Python虚拟环境
requirements.txt是Python运行的依赖包列表
config.py是配置设置脚本
manage.py 用于启动应用程序和其他应用程序任务
command.py 控制
app层
app下面有main、static、templates三个文件夹以及init.py、email.py、models.py
main文件夹用来保存蓝本,此文件夹下 init.py文件里面创建蓝本,(蓝本和程序类似,也可以定义路由。不同的是,在蓝本中定义的路由处于休眠状态,直到蓝本注册到程序上后,路由才真正成为程序的一部分。)main文件夹下views.py用来保存程序的路由,errors.py用来处理错误,forms.py是存放表单定义。
init.py
和路由相关联的蓝图都在休眠状态,只有当蓝图在应用中被注册后,此时的路由才会成为它的一部分。使用定义在全局作用域下的蓝图,定义应用程序的路由就几乎可以和单脚本应用程序一样简单了。
蓝图可以定义在一个文件或一个包中与多个模块一起创建更结构化的方式。为了追求最大的灵活性,可以在应用程序包中创建子包来持有蓝图。
# app/main/ _init__.py:创建蓝图_
from flask import Blueprint
main = Blueprint('main', __name__)
from . import views, errors
蓝图是通过实例化Blueprint类对象来创建的。这个类的构造函数接收两个参数:蓝图名和蓝图所在的模块或包的位置。与应用程序一样,在大多数情况