码迷,mamicode.com
首页 > 其他好文 > 详细

[Django笔记] models 深入学习

时间:2018-01-24 22:01:31      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:type   cti   sql   mysql   不同   结构   datetime   显示   计算   

对着官方文档撸一遍,顺便做点笔记

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 深入学习

标签:type   cti   sql   mysql   不同   结构   datetime   显示   计算   

原文地址:https://www.cnblogs.com/dapianzi/p/8250003.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!