django2中关于时间处理策略

栏目: Python · 发布时间: 5年前

内容简介:实际上我这是差不多下午13点了,刚好相差8小时
  • 1、 DateField :可以记录年月日,映射到数据库是 date 类型
  • 2、 DateTimeField :可以记录年月日时分秒,映射到数据库是 datetime 类型
  • 3、 TimeField :可以记录时分秒,映射到数据库是 time 类型

二、关于 navie 时间和 aware 时间的认识详细查看

三、在 django 中正确的使用时间

  • 1、在 settings.py 中配置

    TIME_ZONE = 'Asia/Shanghai'  # 时区的选择
    # 如果USE_TZ=False,那么django获取到的当前时间就是一个navie类型的时间,
    # 网上很多资料写的是设置False,但是实际开发过程中设置True
    USE_TZ = True
    复制代码
  • 2、在一个 app 的数据模型中创建时间的字段

    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、在视图类中手动的添加一条数据

    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')
    复制代码
  • 4、查看数据库数据

实际上我这是差不多下午13点了,刚好相差8小时

django2中关于时间处理策略
  • 5、查询出来的数据使用 localtime 函数转换为本地时间

    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):
            result = models.ArticleModel.objects.get(pk=1)
            print(result)
            print(localtime(result.create_time))
            return render(request, 'article.html')
    复制代码
    # 返回结果
    <ArticleModel>(第一篇文章, 2019-02-28 04:56:43.296133+00:00)
    2019-02-28 12:56:43.296133+08:00
    复制代码
  • 6、在模板( html )中使用(自己会转换为你电脑本地时区的时间)

    <p>{{ article.title }}</p>
    <p>{{ article.create_time }}</p>
    <!--直接使用django内置过滤器格式化数据-->
    <p>{{ article.create_time | date:"Y-m-d H:i:s" }}</p>
    复制代码
  • 7、如果你在 settings.pyTIME_ZONE = 'Asia/Shanghai' 配置不同的时区,在用户页面展示的结果也会不一样的。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Thinking Recursively

Thinking Recursively

Eric S. Roberts / Wiley / 1986-1-17 / USD 85.67

The process of solving large problems by breaking them down into smaller, more simple problems that have identical forms. Thinking Recursively: A small text to solve large problems. Concentrating on t......一起来看看 《Thinking Recursively》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

SHA 加密
SHA 加密

SHA 加密工具