【Python】Django 时间字段 最佳实践

Model定义:

class Test(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=128, unique=True, db_index=True)
    #create_time = models.DateTimeField(auto_now_add=True, db_index=True)
    #update_time = models.DateTimeField(auto_now=True, db_index=True)
    create_time = models.DateTimeField(default=timezone.now, db_index=True)
    update_time = models.DateTimeField(default=timezone.now)
    description = models.TextField(null=False, blank=True)

datetime转化为时间戳:

from datetime import datetime
from django.utils import timezone
from django.utils.timezone import utc

time.mktime(timezone.now().timetuple())

时间戳转化为datetime:

datetime.utcfromtimestamp(1476321626.0).replace(tzinfo=utc)

参考资料:

http://stackoverflow.com/questions/13225890/django-default-timezone-now-saves-records-using-old-time

时间戳与datetime相互转换:http://blog.sina.com.cn/s/blog_771875550101jfw2.html

时间: 2024-10-11 17:30:51

【Python】Django 时间字段 最佳实践的相关文章

Django 1.6 最佳实践: 如何设置django项目的设置(settings.py)和部署文件(requirements.txt)

Django 1.6 最佳实践: 如何设置django项目的设置(settings.py)和部署文件(requirements.txt) 作者: Desmond Chen,发布日期: 2014-05-17, 修改日期: 2014-05-18 在Django 1.6中的settings.py中可以修改130多项设置, 但大多数都继承自默认值. 设置是在web服务器启动时首次载入的, 服务器重启时重新载入, 因此, 程序员们应尽量避免修改正式服务器上使用的settings.py文件. 以下是一些我们

python高级编程之最佳实践,描述符与属性01

# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' #最佳实践 """ 为了避免前面所有的问题,必须考虑到几下几点: ~1:应该避免多重继承,可以一些设计模式来代替它 ~2:super使用必须一致,在类层次结构中,应该在所有地方都使用super或者彻底不使用它,滥用super和传统调用是一种滥用方法,建议使用super ~3:不要滥用经典类和新式类,两者都具备代码库将导致不同的mro表现 ~4:调

Django 1.6 最佳实践: django项目的服务器自动化部署(转)

原文:http://www.weiguda.com/blog/41/ 当我们设置服务器时, 不应该每次都使用ssh登录服务器, 再按照记忆一步一步的配置. 因为这样实在是太容易忘记某些步骤了. 服务器设置应当自动化, 并写成文档. 在django用户中, Ansible, SaltStack, Puppet和Chef是最流行的四款自动化部署工具. 这些工具似乎都需要长时间学习才能使用, 因为这些工具不是为一台服务器设置的, 而是针对多台服务器的. 以下是这些工具的基本功能: 远程通过apt-ge

Django 1.6 最佳实践: 如何正确使用 Signal(转)

原文:http://www.weiguda.com/blog/38/ 如何正确的使用signal: 简单回答是: 在其他方法无法使用的情况下, 才最后考虑使用signal. 因为新的django开发人员得知signal之后, 往往会很高兴去使用它. 他们在能使用signal的地方就使用signal, 并且这是他们觉得自己是django专家一样. 然而, 像这样编码一段时间后, django项目就会变得异常复杂, 许多内容都纠结在一起无法解开. 许多开发者也会将django signal和异步消息

python开发利器ulipad最佳实践

介绍 UliPad是一个国人开发的python轻量级编辑器,导向和灵活的编程器.它如类浏览器,代码自动完成许多功能,如:HTML查看器,目录浏览器,向导等. 下载与安装 下载地址:https://pypi.python.org/pypi/UliPad 安装,傻瓜式,一路next即可 配置 安装好之后双击启动之后逐步进行下面的配置. 1.文件>目录浏览,这样我们可以在左侧看到目录方便管理脚本,最终效果图如下: 2.编辑>参数>python>设置python解释器>增加>选

Django REST Framework 最佳实践

Django REST framework 是一个强大且灵活的工具包,用以构建Web APIs. 为什么要使用REST framework? - 在线可视的API,对于赢得你的开发者们十分有用 - 验证策略涵盖了OAuth1a和OAuth2 - 同时支持ORM和非ORM数据源的序列化 - 可以配置各个环节,若无需更多强大的特性,使用一般基于方法(function-based)的视图(views)即可 - 大量的文档,强力的社区支持 - 大公司如同Mozilla和Eventbrite,也是忠实的使

Django 1.6 最佳实践: 如何设置和使用 Log(转)

原文: http://www.weiguda.com/blog/37/ 任何参与过高要求的大型项目的编程人员都明白设置适当的log等级, 创建不同的logger, 记录重要事件的重要性. 正确的设置和使用log并不是一件容易的事, 但 对于系统的稳定性而言, logging则是必不可少的. log不仅能用来debug程序, 并能追踪影响程序表现的指标. 之前我们提到需要定期查看access和error文件, 除了记录这些外, 还需要定期查看log文件, 以保证程序安全. 本片的内容主要关于Dja

Python命名风格PEP8最佳实践

常量(UPPERCASE|UPPER_CASE):不会发生改变的全局变量(注意Python本身并不支持C++中的const常量,这里仅仅是约定),由大写字母.[下划线]组成.通常用来保存默认配置的值. 模块.类.方法的私有变量|函数|方法(_lower_case):经常改变的模块级变量(模块内私有),类.方法的私有变量,由前置下划线.小写字母.[下划线]组成. 函数|方法|一般变量|参数|属性(lower_case):小写字母.[下划线]组成. 特殊方法(__lower_case__):通常用于

python编码最佳实践之总结

一.数据结构的选择: 1. 在列表中查找: 对于已经排序的列表考虑用bisect模块来实现查找元素,该模块将使用二分查找实现 def find(seq, el) : pos = bisect(seq, el) if pos == 0 or ( pos == len(seq) and seq[-1] != el ) : return -1 return pos - 1 而快速插入一个元素可以用: bisect.insort(list, element) 这样就插入元素并且不需要再次调用 sort(