蓝图:
蓝图的目的是实现 各个模块的视图函数写在不同的py文件当中。实现分类管理的功能。主视图中导入分路各视图的模块,并且注册蓝图对象,分路由视图中利用蓝图对象的route 进行装饰视图函数,从而使程序结构清晰易懂。
Blueprint接受两个参数实例化,分别为蓝本的名字和蓝本所在的包或模块,大多数情况下第二个参数使用Python 的__name__ 变量即可。
例如:
1,前端模块(定义蓝图对象)
from flask import Blueprint
# 定义蓝图
home = Blueprint("home", __name__)
from . import home
@home.route('/')
def index():
return "你好"
2,后台模块(定义后台蓝图对象)
from flask import Blueprint
# 定义蓝图
admin = Blueprint("admin", __name__)
from . import home
@admin.route('/')
def index():
return "你好"
创建APP后,注册已经创建好的蓝图
from flask import Flask
from app.admin import admin as admin_blueprint
from app.home import home as home_blueprint
from flask_script import Manager
app = Flask(__name__)
manager = Manager(app)
# 注册admin蓝图, url_prefix='/admin'添加前缀/admin
app.register_blueprint(admin_blueprint, url_prefix='/admin')
# 注册home蓝图, 不添加前缀
app.register_blueprint(home_blueprint)
项目大致框架
├── app
│ ├── admin
│ │ ├── forms.py
│ │ ├── init.py
│ │ └── views.py
│ ├── home
│ │ ├── forms.py
│ │ ├── init.py
│ │ └── views.py
│ ├── init.py
│ ├── models.py
│ ├── static
│ └── templates
├── doc
├── manage.py
使用的模块
Flask-Moment:是一个flask的扩展模块,用来处理时间日期等信息。用这个模块主要是考虑到两点,
- 第一是为了让不同时区的用户看到的都是各自时区的实际时间,而不是服务器所在地的时间。
- 第二是对于一些时间间隔的处理,如果要手动处理很麻烦,如果有模块就很好了。
Flask-Script:插件为在Flask里编写额外的脚本提供了支持。这包括运行一个开发服务器,
一个定制的Python命令行,用于执行初始化数据库、定时任务和其他属于web应用之外的命
令行任务的脚本。
Flask-Migrate:实现数据库的迁移
Flask-sqlchemy:实现与数据库的连接
Flask-Bootstrap:可以在程序中使用一个包含所有Bootstrap 文件的基模板。这个模板利用Jinja2 的模板继承机制,让程序扩展一个具有基本页面结构的基模板,其中就有用来引入Bootstrap 的元素。
Ueditor文本编辑器:
是由百度WEB前端研发部开发的所见即所得的开源富文本编辑器,具有轻量、可定制、用户体验优秀等特点。用他进行文本编辑框的生成。
Ajax:
使用JavaScript执行异步网络请求,例如要让用户留在当前页面中,同时发出新的HTTP请求,就必须用JavaScript发送这个新请求,接收到数据后,再用JavaScript更新页面,这样一来,用户就感觉自己仍然停留在当前页面,但是数据却可以不断地更新。