中的部分是建立資料庫的步驟1.2講解
產生資料表:
使用SQLAlchemy資料庫的Model類別
語法:
class 資料表名稱(db.Model):
欄位名稱 = db.Column(資料類型,其他參數)
def __repr__(self):
return '資料表內容'
資料類型:
類別名稱 | 說明 | 參數 |
---|---|---|
Integer | 整數類型 | 無 |
String | 字串類型 | length(字數),預設為沒有限制 |
Float | 浮點數 | precision(精確度) |
Number | 整數或浮點數 | precision(精確度)、length(長度) |
DateTime | 日期時間 | 無 |
Binary | 二進制類型,如影像 | length(長度),預設為沒有限制 |
例:
先規劃資料表的內容
欄位名稱 | 資料類型 | 欄位大小 | 說明 | 備註 |
---|---|---|---|---|
id | Integer(整數) | 自動設置 | 留言編號 | 自動編號,此欄為資料表的主鍵 |
guestname | String(字串) | 30 | 留言者的名字 | 必填 |
String(字串) | 50 | 電子郵件 | 不可重複、必填 | |
message | Text(大量文字) | 留言內容 | 必填 | |
icon | String(字串) | 10 | 圖示名稱 | 必填 |
postdate | DateTime(日期時間) | 留言的日期與時間 | 必填,預設為留言時間 |
再依照規劃的內容產生對應資料表
class Guestbook(db. Model):
id = db.Column(db.Integer, primary_key=True)
guestname = db.Column(db.String(30), nullable=False)
email = db.Column(db.String(50), unique=True, nullable=False)
message = db.Column(db.Text, nullable=False)
icon = db.Column(db.String (10), nullable=False,
default='ico1.png')
postdate = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
def __repr__(self):
return 'guestname: {}, email:{},postdate: {}' . format(
self.guestname,
self.email,
self.postdate
)
primary_key:主鍵,每個資料表都必須包含一個足以識別該資料的唯一值
nullable:可不可空白
unique:唯一值
datetime.utcnow:當前時間