[Django筆記] models 深入學習
阿新 • • 發佈:2018-01-24
auto date 通過 基本上 數據 數據類型 pre 根據 應用
對著官方文檔擼一遍,順便做點筆記
models 定義了本應用的數據庫表結構。底層可以由不同的數據庫封裝實現,因為不同的數據庫字段類型不一樣,因此,跟以往直接用單一數據庫(如mysql)建立的應用有很大的區別。
models裏面定義的數據類型基本上都是基礎類型,在mysql用的比較多的 timestamp 貌似需要自己去做擴展:
class MyDateField(models.Field): def db_type(self, connection): if connection.settings_dict[‘ENGINE‘] == ‘django.db.backends.mysql‘: return ‘datetime‘ else: return ‘timestamp‘
DatetimeField
auto_now_add = True; 設置添加時默認當前時間。這裏並不是通過數據庫來實現,而是django在添加的時候去計算時間。因此涉及到時區問題:
settings.py 設置 USE_TZ = True 後,django會使用UTC標準時間存入數據庫。這個時候取出的 datetimefield 需要轉換時區才能正確顯示。
因此一般情況下,如果應用不用考慮跨時區問題,設置 USE_TZ = False 一勞永逸
查詢出來的 datetimeField 是一個 <‘datetime‘ object>,根據自己需要進行格式化輸出
[Django筆記] models 深入學習