一、实战场景
Flask 框架实现用户的注册,登录和登出。
Python基础入门到精通视频合集
【整整800集】Python爬虫项目零基础入门合集,细狗都学会了,你还不会?
二、主要知识点
- flask_login 插件使用
- SQLAlchemy 基础操作
- 用户基础类设计
- Flask 读取配置文件
- 蓝图注册与使用
- wtforms表单提交数据
- wtforms 表单验证
- Bootstrap 集成
- Jinjia2 模版继承
涉及的知识点和细节很多,我下面就直接贴出注册部分的核心代码,有需要源码的小伙伴私信我哦!
三、核心代码
马上安排!
1、应用初始化 MySQL 和 flask_login 模块
'''
Description: 创建应用程序,并注册相关蓝图
'''
from flask import Flask
from base.base_model import db
from flask_login import LoginManager
# 登录插件
login_manager = LoginManager()
def register_auth_blueprint(app):
# 注册蓝图
from app.auth import auth_bp
app.register_blueprint(auth_bp)
def create_app(config=None):
# 创建应用
app = Flask(__name__)
# 加载配置
app.config.from_object('config')
# 注册 SQLAlchemy
db.init_app(app)
#
# 注册 login 模块
login_manager.init_app(app)
# 未登录时候的默认跳转页面
login_manager.login_view = 'auth.login'
# # login_manager.login_message = '请先登录或注册'
register_auth_blueprint(app)
if config is not None:
if isinstance(config, dict):
app.config.update(config)
elif config.endswith('.py'):
app.config.from_pyfile(config)
return app
app = create_app()
with app.app_context():
db.create_all()
if __name__ == '__main__':
# 如果要使用 vscode 调试,需要将 debug 设置为 False,否则无法命中请求断点
app.run(host='0.0.0.0', debug=True)
2、设置配置文件
APP_NAME = "north"
SECRET_KEY = "fNqh2TNw3l0Dj8ZCMQyQh7m1YvWVSgDx"
DEBUG = True
SQLALCHEMY_DATABASE_URI = 'mysql://username:password@ip:3306/dbname'
# 设置sqlalchemy自动更跟踪数据库
SQLALCHEMY_TRACK_MODIFICATIONS = True
# 查询时会显示原始SQL语句
SQLALCHEMY_ECHO = True
3、蓝图初始化
from flask import Blueprint
auth_bp = Blueprint(
'auth',
__name__,
)
from app.auth.user import user, auth
4、编写注册表单
<main class="form-signin w-100 m-auto">
<form action="{
{ url_for('auth.register') }}" method="post">
<img class="mb-4" src="{
{ url_for('static', filename="3rd/images/bootstrap-