本笔记是居于黑马程序员的Flask快速入门视频记的笔记,因为感觉这是我找了一段时间后,发现最基础的入门教程,看完这个视频,再去看《Flask Web开发》那本书,可能会好理解了。
视频原地址: https://www.bilibili.com/video/av19817183/index_18.html?t=47
Flask+MySql实现用户登陆注册:https://blog.csdn.net/coder_py/article/details/76572808
1.SQLAlchemy扩展:
SQLAlchemy是一个关系型数据库框架,它提供了高层的ORM和底层的原生数据库的操作。flask-sqlalchemy是一个简化了SQLAlchemy操作的flask扩展。
安装flask-sqlalchemy:
pip install flask-sqlalchemy
如果连接的是mysql数据库,需要安装mysqldb
pip install flask-mysqldb
Flask的数据库设置:
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql(+pymysql)://root:mysql@127.0.0.1:3306/test'
mysql+pymysal://username:password@server/db
其他设置:
# 动态追踪修改设置,如未设置只会提示警告,不建议开启
app.config['SQLALCHEMY_TRACK_MODEFICATIONS'] = False
#查询时会显示原始SQL语句
app.config['SQLALCHEMY_ECHO'] = True
2.定义数据模型
定义两张表角色(管理员/普通用户)用户(角色ID):
# 配置数据库地址
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:123321@127.0.0.1:3306/*'
# 跟踪数据库修改(不建议开启)
app.config['SQLALCHEMY_TRACK_MODEFICATIONS'] = False
db = SQLAlchemy(app)
# 数据库的模型, db.Model 表示继承自数据库模型
class Role(db.Model):
# 定义表名
__tablename__ = 'roles'
# 定义字段 db.Column就表示它是一个字段 , primary_key就表示该字段它是主键
id = db.Column(db.Integer, primary_key = True)
name = db.column(db.String(16), unique = True)
class User(db.Model):
# 定义表名
__table__ = 'users'
# 定义字段
id = db.Column(db.Integer, primary_key = True)
name = db.Column(db.String(16), unique = True)
#role_id这一列是外键&#x