Django2 时间策略解析

哈哈 阅读:228 2021-03-31 18:17:41 评论:0

本文转载至: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方法的时候更新为当前时间

声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

发表评论
搜索
排行榜
KIKK导航

KIKK导航

关注我们