通过Flask-SQLAlchemy定义和业务需求相关的数据库模型
数据库的基本操作
一、增删改操作
- 基本概念
- 在Flask-SQLAlchemy中,插入、修改、删除操作,均由数据库会话管理。
会话用db.session表示。在准备把数据写入数据库前,要先将数据添加到会话中,然后调用commit()方法提交会话。
- 在Flask-SQLAlchemy中,查询操作是通过query对象操作数据。
最基本的查询是返回表中所有数据,可以通过过滤器进行更精确的数据库查询。
安装数据库连接依赖包
pip install flask-sqlalchemy:sqlalchemy
定义mysql数据库连接:
from flask_sqlalchemy import SQLAlchemy
from flask import Flask
app = from flask import Flask
app = Flask(__name__)
# 配置数据库的地址
app.config['SQLALCHEMY_DATABASE_URL'] = "mysql://root:kjs@localhost/web"
# 跟踪数据库的修改 -> 不建议开启 未来的版本中会移除
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
"""
两张表
角色(管理员 / 普通用户)
用户(角色ID)
"""
# 数据库的模型,需要继承db.Model
class Role(db.Model):
# 定义表名字
__tablename__ = 'roles'
# 定义字段 db.Column表示一个字段
id = db.Column(db.Integer, primary_key=True) # int 类型, 主键
name = db.Column(db.String(16), unique=True)
class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key = True)
name = db.Column(db.String(16), unique = True)
# db.ForeignKey('roles.id') 表示外键
role_id = db.Column(db.Integer, db.ForeignKey('roles.id'))
命令行下数据库操作