zoukankan      html  css  js  c++  java
  • 【Flask】Sqlalchemy 常用数据类型

    ### SQLAlchemy常用数据类型:
    1. Integer:整形,映射到数据库中是int类型。
    2. Float:浮点类型,映射到数据库中是float类型。他占据的32位。
    3. Double:双精度浮点类型,映射到数据库中是double类型,占据64位。
    4. String:可变字符类型,映射到数据库中是varchar类型.
    5. Boolean:布尔类型,映射到数据库中的是tinyint类型。
    6. DECIMAL:定点类型。是专门为了解决浮点类型精度丢失的问题的。在存储钱相关的字段的时候建议大家都使用这个数据类型。并且这个类型使用的时候需要传递两个参数,第一个参数是用来标记这个字段总能能存储多少个数字,第二个参数表示小数点后有多少位。
    7. Enum:枚举类型。指定某个字段只能是枚举中指定的几个值,不能为其他值。在ORM模型中,使用Enum来作为枚举

    8. Date:存储时间,只能存储年月日。映射到数据库中是date类型。在Python代码中,可以使用`datetime.date`来指定

    9. DateTime:存储时间,可以存储年月日时分秒毫秒等。映射到数据库中也是datetime类型。在Python代码中,可以使用`datetime.datetime`来指定。示例代码如下:

    10. Time:存储时间,可以存储时分秒。映射到数据库中也是time类型。在Python代码中,可以使用`datetime.time`来至此那个。

    11. Text:存储长字符串。一般可以存储6W多个字符。如果超出了这个范围,可以使用LONGTEXT类型。映射到数据库中就是text类型。
    12. LONGTEXT:长文本类型,映射到数据库中是longtext类型。

     1 # coding:utf-8
     2 # Author: liangjun.chen
     3 
     4 from datetime import date
     5 from datetime import datetime
     6 from datetime import time
     7 
     8 from sqlalchemy import create_engine, Column, Integer, String, Float, Boolean, DECIMAL, Enum, Date, DateTime, Time, Text
     9 from sqlalchemy.dialects.mysql import LONGTEXT
    10 
    11 from sqlalchemy.ext.declarative import declarative_base
    12 from sqlalchemy.orm import sessionmaker
    13 
    14 HOSTNAME = '127.0.0.1'
    15 PORT = 3306
    16 DATABASE = 'sqlalchemy_first'
    17 USERNAME = 'root'
    18 PASSWORD = '123456'
    19 
    20 DB_URI = 'mysql+pymysql://{username}:{password}@{host}:{port}/{dbname}?charset=utf8'.format(
    21         username=USERNAME, password=PASSWORD, host=HOSTNAME, port=PORT, dbname=DATABASE
    22 )
    23 engine = create_engine(DB_URI)
    24 Base = declarative_base(engine)
    25 Session = sessionmaker(engine)
    26 session = Session()
    27 
    28 
    29 class Artile(Base):
    30     __tablename__ = 'article'
    31     id = Column(Integer, primary_key=True, autoincrement=True)
    32     price = Column(Float)
    33     is_delete = Column(Boolean)
    34     money = Column(DECIMAL(10, 4))
    35     language = Column(Enum('python', 'flask'))
    36     create_date = Column(Date)
    37     create_datetime = Column(DateTime)
    38     content = Column(String(100))
    39     create_time = Column(Time)
    40     content_text = Column(Text)
    41     long_text = Column(LONGTEXT)
    42 
    43 Base.metadata.drop_all()
    44 Base.metadata.create_all()
    45 
    46 article = Artile(price=3.1415926, is_delete=True, money=10000.1234, language='flask',
    47                  create_date=date(2018,3,22), create_datetime=datetime(2018,3,22,22,51,00), content='tesxxxx',
    48                  create_time=time(22,57,00), content_text='text', long_text='longtext')
    49 session.add(article)
    50 session.commit()
  • 相关阅读:
    【初心】
    【杂题集】单题小总结
    【模板】(旧)矩阵模板
    【机智题?】【Vijos】【天平称量】
    【杂题集】【51NOD 1267】4个数和为0
    【模板】(旧)Miller Rabin 素数判定
    【杂谈】只是想想
    【杂谈】思考
    【学习?】组合和排序
    【模版】读入优化
  • 原文地址:https://www.cnblogs.com/chen0427/p/8627587.html
Copyright © 2011-2022 走看看