专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

django2中关于时间处理策略

一、django中数据模型关于时间字段的认识

  • 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小时

64_1.png

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

四、在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方法的时候更新为当前时间

未经允许不得转载:搜云库技术团队 » django2中关于时间处理策略

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们