[Django笔记] models 深入学习

Posted Dapianzi卡夫卡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Django笔记] models 深入学习相关的知识,希望对你有一定的参考价值。

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

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 深入学习的主要内容,如果未能解决你的问题,请参考以下文章

Django后端开发学习笔记使用Models并在Django自带管理页面中管理数据

Django 学习笔记之五 Django中数据库中ManyToManyField及ForeignKey

Django学习笔记:为Model添加Action

[Django笔记] views.py 深入学习

Python学习笔记整理总结Django:Model操作

千锋Django学习笔记