Flask-Blueprint (蓝图)
什么是蓝图
在Flask项目中可以用Blueprint(蓝图)实现模块化的应用,使用蓝图可以让应用层次更清晰,开发者更容易去维护和开发项目。蓝图将作用于相同的URL前缀的请求地址,将具有相同前缀的请求都放在一个模块中,这样查找问题,一看路由就很快的可以找到对应的视图,并解决问题了。
程序结构可以变为
application
users模块
vote模块
report模块
…
这些模块使用Blueprint可以拥有自己的url前缀地址进行区分
# 模块内 views.py文件
from flask import Blueprint
users = Blueprint('users', __name__)
@users.route('/register')
def register():
return '注册页面'
# application/__init__.py
# 放在db = SQLAlchemy(app)这条语句后面
from application.users.views import users
# 注册蓝图
app.register_blueprint(users, url_prefix='/users')
在application下创建templates目录, 分模块存放页面,继承base.html
Flask-WTF - 表单验证和渲染组件
安装
$ pip install flask-wtf
from flask_wtf import FlaskForm
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField, PasswordField
from wtforms import ValidationError
from wtforms.validators import DataRequired, Length
from application.users.models import Users
class RegisterForm(FlaskForm):
username = StringField('用户名', validators=[ DataRequired(), Length(max=128) ])
password = PasswordField('密码', validators=[ DataRequired(