Flask 学习-13.Flask-SQLAlchemy 新建模型和字段

Posted 上海-悠悠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于Flask 学习-13.Flask-SQLAlchemy 新建模型和字段的主要内容,如果未能解决你的问题,请参考以下文章

Flask学习总结

python--flask学习1

Flask学习-Flask app启动过程

flask框架的学习

Flask 学习-42.Flask-RESTX 快速入门

Python Flask教程学习03