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' 配置不同的时区,在用户页面展示的结果也会不一样的。


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

查看所有标签

猜你喜欢:

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

运营有道:重新定义互联网运营

运营有道:重新定义互联网运营

李明轩 / 机械工业出版社 / 2017-7-31 / 69.00元

本书是前百度资深运营专家多年运营经验的总结,是作者运营千万级用户规模的大型互联网产品的实操经验复盘,是作者在“在行”上为近百位CEO和高管提供互联网运营咨询服务后对互联网运营需求的深入洞见。 本书的思想基础是“运营必须以用户为中心”,从产品、用户、市场3个维度对互联网运营重新进行了系统性的梳理:从道的层面解读并重新定义运营方法论,从术的层面围绕方法论提出行之有效的解决方法和实际案例。重点不在......一起来看看 《运营有道:重新定义互联网运营》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器