flask slqalchemy常用数据类型

2020-12-18  本文已影响0人  不上进的码农

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
上一篇 下一篇

猜你喜欢

热点阅读