1. 程式人生 > >【Flask】Sqlalchemy 常用數據類型

【Flask】Sqlalchemy 常用數據類型

模型 pytho bool comm 枚舉 lec 枚舉類 make con

### 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()

【Flask】Sqlalchemy 常用數據類型