MySQL系类之SqlAlchemy-Python-Go

SqlAlchemy-python-MySQL类型对比

MK

用法

语句

pthon对Mysql操作和使用ORM框架(SQLAlchemy)

类型对比

sqlalchemyPython数据库类型Go
Integerint 整数(4字节)INT
SmallIntegerint取值范围小的整数(2字节)SMALLINT
BigIntegerint或longBIGINT
FloatfloatFLOAT
Numericdecimal.DecimalDECIMAL
StringstrVARCHAR
TextstrTEXT
BooleanboolBOOLEAN
Datedatetime.dateDATE
Timedatetime.timeTIME
DateTimedatetime.datetimeDATETIME
EnumstrENUM
LargeBinarystrVARBINARY
Unicodeunicode 可变长度Unicode字符串\
Intervaldatetime.timedelta 时间间隔
PickleType任意Python对象 自动Pickle序列化
SqlAlchemy列选项描述
primary_key如果设置为True,则为该列表的主键
unique如果设置为True,该列不允许相同值
index如果设置为True,为该列创建索引,查询效率会更高
nullable如果设置为True,该列允许为空。如果设置为False,该列不允许空值
default定义该列的默认值
SqlAlchemy关系选项描述
backref在关系的另一个模型中添加反向引用
primaryjoin明确指定两个模型之间使用的联结条件。只在模棱两可的关系中需要指定
lazy指定如何加载相关记录。可选值有select(首次访问时按需加载)、immediate(源对象加载后就加载)、joined(加载记录,但使用联结)、subquery(立即加载,但使用子查询)、noload(永不加载)和dynamic(不加载记录,但提供加载记录的查询)
uselist如果设为False,不适用列表,而使用标量值
order_by指定关系记录的排序方式
secondary指定多对多关系中关系表的名字
secondaryjoinSQLAlchemy无法自行决定时,指定多对多关系中的二级联结条件
外键四种关系
uid = Column(Integer , ForeignKey(“user.id” ,ondelete=“RESTRICT”))(默认就是这种。当父表数据被删除,从表会拒绝删除)
uid = Column(Integer , ForeignKey(“user.id” ,ondelete=“NO ACTION”))(同上 )
uid = Column(Integer , ForeignKey(“user.id” ,ondelete=“CASCADE”))(父表数据删除、从表数据也会跟着删除)
uid = Column(Integer , ForeignKey(“user.id” ,ondelete=“SET NULL”))(父表数据删除,从表外键字段设为NULL)

使用 代码:

**db = SQLAlchemy()
...
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(64), index=True, unique=True)
    email = db.Column(db.String(120), index=True, unique=True)
    password_hash = db.Column(db.String(128))
    about_me = db.Column(db.String(140))
    info = db.Column(db.Text)
    last_seen = db.Column(db.DateTime, default=datetime.utcnow)
    def __repr__(self):
        return '<User {}>'.format(self.username)**
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值