Flask 学习-13.Flask-SQLAlchemy 新建模型和字段
前言
Flask-SQLAlchemy是一个Flask扩展,简化了在Flask应用中使用SQLAlchemy的操作。
定义模型
在python代码中创建一个类,每个类对应了一个数据库中的一张表,类的数据属性对应了表中的字段名,这个类称为映射类。

创建模型示例
from flask import Flask, url_for, request, redirect, render_template
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
# 设置数据库连接地址
DB_URI = 'mysql+pymysql://root:123456@127.0.0.1:3306/web'
app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI
# 是否追踪数据库修改,一般不开启, 会影响性能
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
# 是否显示底层执行的SQL语句
app.config['SQLALCHEMY_ECHO'] = True
# 初始化db,关联flask 项目
db = SQLAlchemy(app)
# 创建模型
class Students(db.Model):
__tablename__ = 'students' # 数据库表名
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(20))
fullname = db.Column(db.String(30))
nickname = db.Column(db.String(30))
def __repr__(self):
return "<Students(name='%s', fullname='%s', nickname='%s')>" % (
self.name, self.fullname, self.nickname)
if __name__ == '__main__':
# 创建表
db.create_all()
app.run(debug=True)
运行后,数据库会生成对应的表


创建表和删除表的2个操作
# 删除所有表
db.drop_all()
# 创建所有表
db.create_all()
常用字段
sqlalchemy常用数据类型:
| 参数 | 类型 |
|---|---|
| String | 字符类型,使用时需要指定长度,区别于Text类型 |
| Text | 文本类型 |
| LONGTEXT | 长文本类型 |
| Integer | 整形 |
| Float | 浮点类型 |
| Boolean | 传递True/False |
| Decimal | 具有小数点而且数值确定的数值 |
| Enum | 枚举类型 |
| DateTime | 日期时间类型 |
| Date | 传递datetime.date()进去 |
| Time | 传递datatime.time() |
针对字段的一些参数设置
| 参数 | 说明 |
|---|---|
| primary_key | 是否为主键 |
| autoincrement | 是否自动增长 |
| unique | 是否唯一 |
| default | 默认值 |
| nullable | 是否允许为空 |
| onupdate | 更新的时候执行的函数 |
| name | 该属性在数据库中的字段映射 |
| index | 是否创建索引,提高查询效率 |
没有给对应字段的类属性设置default参数, 且添加数据时也没有给该字段赋值, 则sqlalchemy会给该字段设置默认值 None

浙公网安备 33010602011771号