slqalchemy常见的数据类型
1、Integer:整形,映射到数据库中是int类型
2、Float:浮点类型,映射到数据库中是float类型。它占据的32位
3、Double:双精度浮点类型,映射到数据库中是double类型,占据64位
4、String:可变字符类型,映射到数据库中是varchar类型
5、Boolean:布尔类型,映射到数据库中是tinyint类型
6、Decimal:定点类型,是专门为了解决浮点类型精度丢失的问题的,一般作用于金钱类型
7、Enum:枚举类型,指定某个字段只能是枚举中指定的几个值,不能为其他值
8、Date:存储时间,只能存储年月日,映射到数据库中是date类型
9、Datetime:存储时间,可以存储年月日时分秒
10、Time:存储时间,存储时分秒
11、Text:存储长字符串,映射到数据库是text类型
12、Longtext:长文本类型,映射到数据库中是longtext类型
一个简单地models
from datetime import date
from datetime import datetime
from datetime import time
from sqlalchemy import create_engine, Column, Integer, String, Float, Boolean, DECIMAL, Enum, Date, DateTime, Time, Text
from sqlalchemy.dialects.mysql import LONGTEXT
#from flask_sqlalchemy import SQLAlchemy
#db = SQLAlchemy()
class Footwalk(db.Model):
__tablename__ = 'footwalk'
id = Column(INTEGER(11), nullable=False, primary_key=True, comment='名称')
identifier = Column(String(255), nullable=False)
footwalk_name = Column(String(255), nullable=False)
cross_roads_id = Column(INTEGER(11), nullable=False)
phase_num = Column(String(255), nullable=False)
length = Column(String(255), nullable=False)
wide = Column(String(255), nullable=False)
created_at = Column(TIMESTAMP, nullable=False, server_default=text('CURRENT_TIMESTAMP'), comment='创建时间')
def to_dict(self):
resp_dict = {
'id': self.id,
'identifier': self.identifier,
'footwalk_name': self.footwalk_name,
'cross_roads_id': self.cross_roads_id,
'phase_num': self.phase_num,
'length': float(self.length) if self.length else 0,
'wide': float(self.wide) if self.wide else 0,
'created_at': self.created_at.strftime('%Y-%m-%d %H:%M:%S'),
}
return resp_dict
网友评论