本文转载至:https://juejin.im/post/5c7e1734f265da2dc2320a30
一、Django 数据模型涉及时间函数:
1、DateField:可以记录年月日,映射到数据库是date类型
2、DateTimeField:可以记录年月日时分秒,映射到数据库是datetime类型
3、TimeField:可以记录时分秒,映射到数据库是time类型
二、Django 使用时间字段步骤:
1、项目settings.py
配置
TIME_ZONE = 'Asia/Shanghai' # 时区的选择
# 如果USE_TZ=False,那么django获取到的当前时间就是一个navie类型的时间,
# 网上很多资料写的是设置False,但是实际开发过程中设置True
USE_TZ = True
2、应用数据模型定义,使用时间函数(models.py)
from django.db import models
class ArticleModel(models.Model):
"""
文章的模型
"""
title = models.CharField(max_length=100, verbose_name='文章标题')
create_time = models.DateTimeField(verbose_name='文章创建时间')
class Meta(object):
db_table = 'article'
def __str__(self):
return '<ArticleModel>({}, {})'.format(self.title, self.create_time)
3、在应用视图中添加一条关于时间的记录(views.py)
from django.shortcuts import render
from django.views import View
# 引入模块
from django.utils.timezone import now, localtime
from . import models
class ArticleView(View):
"""
文章的视图类
"""
def get(self, request, *args, **kwargs):
models.ArticleModel.objects.create(title='第一篇文章', create_time=now())
return render(request, 'article.html')
三、Django数据模型使用时间字段
1、使用字段
create_time = models.DateTimeField(auto_now_add=True, null=True, verbose_name='创建时间')
update_time = models.DateTimeField(auto_now=True, null=True, verbose_name='修改时间')
2、关于auto_now_add的认识
auto_now_add会在第一次添加数据的时候自动获取当前时间
3、关于auto_now的认识
auto_now会在每次对象调用save方法的时候更新为当前时间