- 蓝图: 一个应用中或跨应用制作应用组件和支持通用的模式
- 将不同的功能模块化
- 构建大型应用
- 优化项目结构
- 增强可读性,易于维护
- 定义蓝图(
app/admin/__init__.py
)
from flask import Blueprint
admin = Blueprint('admin', __name__)
import views
from admin import admin as admin_blueprint
app.register_blueprint(admin_blueprint, url_prefix='/admin')
from . import admin
@admin.route('/')
- 安装数据库连接依赖包
pip install flask-sqlalchemy
- 定义mysql数据库连接
from flask_sqlalchemy import SQLAlchemy
from flask import Flask
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URL'] = 'mysql://root:123456@localhost/flask_movie'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
db = SQLAlchemy(app)
class User(db.Model):
__tablename__ = 'user'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String)
pwd = db.Column(db.String)
email = db.Column(db.String)
phone = db.Column(db.String)
info = db.Column(db.Text)
face = db.Column(db.String)
addtime = db.Column(db.DateTime, index=True, default=datetime.utcnow)
uuid = db.Column(db.String)
- 静态文件引入: {{ url_for('static', filename='文件路径') }}
- 定义路由: {{ url_for('模板名.视图名', 变量=参数) }}
- 定义数据块: {% block 数据块名称 %} {% endblock %}
@home.route('/login/')
def login():
return render_template('home/login.html')
@home.route('/logout/')
def logout():
return redirect(url_for('home.login'))
- 会员中心
@home.route('/user/')
- 修改密码
@home.route('/pwd/')
- 评论记录
@home.route('/comments/')
- 登录日志
@home.route('/loginlog/')
- 收藏电影
@home.route('/moviecol/')
- 搜索页面
@home.route('/search/')
- 详情页面
@home.route('/play/')
- 404页面
@app.errorhandler(404)
def page_not_found(error):
return render_template('common/404.html'), 404
app/__init__.py
中创建db对象
app/models.py
中导入db对象
app/admin/forms.py
中定义表单验证
app/templates/admin/login.html
使用表单字段,信息验证,消息闪现
app/admin/views.py
中处理登录请求,保存会话
app/admin/views.py
中处理登录装饰器,访问控制
- centos安装依赖
yum -y install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel