前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flask 学习-13.Flask-SQLAlchemy 新建模型和字段

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

作者头像
上海-悠悠
发布2022-08-29 17:43:29
1.4K0
发布2022-08-29 17:43:29
举报
文章被收录于专栏:从零开始学自动化测试

前言

Flask-SQLAlchemy是一个Flask扩展,简化了在Flask应用中使用SQLAlchemy的操作。

定义模型

在python代码中创建一个类,每个类对应了一个数据库中的一张表,类的数据属性对应了表中的字段名,这个类称为映射类。

创建模型示例

代码语言:javascript
复制
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个操作

代码语言:javascript
复制
# 删除所有表
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

2022年第 12期《python接口web自动化+测试开发》课程,9月17号开学!

本期上课时间:2022年9月17号 - 2022年12月17号,周六周日上午9:00-11:00

报名费:报名费3000一人(周期3个月)

联系微信/QQ:283340479

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-08-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 定义模型
  • 常用字段
    • 报名费:报名费3000一人(周期3个月)
      • 联系微信/QQ:283340479
      相关产品与服务
      数据库
      云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档