python-flask-sqlalchemy

 

1、 flask sqlalchemy 集成的两种方式

# 1、 通过flask app初始化
from flask_sqlalchemy import SQLAlchemy
flask_db = SQLAlchemy()

from flask import Flask
app = Flask(__name__)
app.config.from_object('flaskconfig')
flask_db.init_app(app)

#flask_db db操作


# 2、 通过flask app初始化
from flask_sqlalchemy import SQLAlchemy

from flask import Flask
app = Flask(__name__)
flask_db = SQLAlchemy(app)

#flask_db db操作

2、 通过flask-sqlacodegen命令,从数据库结构生成model类文件

1) 命令执行

cmd = "flask-sqlacodegen --outfile models.py  --flask "+ MYSQL_DATABASE_URI
os.system(cmd)

2) 文件查看

from sqlalchemy import BigInteger, Column, DateTime, String
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()


class TcDemo(db.Model):
    __tablename__ = 'tc_demo'

    id = db.Column(db.BigInteger, primary_key=True, info='ID')
    name = db.Column(db.String(100, 'utf8_general_ci'), nullable=False, unique=True, info='名称')
    desc = db.Column(_db.String(200), info='描述')
    create_time = db.Column(db.DateTime, nullable=False)
    update_time = db.Column(db.DateTime, nullable=False)

 从以上文件可以注意一些点:

#1 文件类名,是数据库表的 tc_demo以驼峰方式转成的 TcDemo

#2 数据库字段类型对应关系,参见附录表1

#3 数据库特殊关键词约束对应关系,参见附录表2

 

常用的SQLAlchemy字段类型 - 表1
MYSQL类型名python中类型说明
Integerint普通整数,一般是32位
SmallIntegerint取值范围小的整数,一般是16位
BigIntegerint或long不限制精度的整数
Floatfloat浮点数
Numericdecimal.Decimaldecimal.Decimal
Stringstr变长字符串
Textstr变长字符串,对较长或不限长度的字符串做了优化
Unicodeunicode变长Unicode字符串
UnicodeTextunicode变长Unicode字符串,对较长或不限长度的字符串做了优化
Booleanbool布尔值
Datedatetime.date时间
Timedatetime.datetime日期和时间
LargeBinarystr二进制文件
来源: https://blog.csdn.net/weixin_41896508/article/details/80772238  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

常用的SQLAlchemy列选项 - 表2
选项名说明
primary_key如果为True,代表表的主键;缺省为False
unique

如果为True,代表这列不允许出现重复的值

注: 索引导出的model类也会设置这个属性

index

如果为True,为这列创建索引,提高查询效率

注: 数据库表字段有索引时,不会自动变成index属性

nullable如果为True,允许有空值,如果为False,不允许有空值
default为这列定义默认值
来源: https://blog.csdn.net/weixin_41896508/article/details/80772238 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值