欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

django2中关于时间处理策略

发布时间:2024/4/17 编程问答 44 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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 modelsclass 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 modelsclass ArticleView(View):"""文章的视图类"""def get(self, request, *args, **kwargs):models.ArticleModel.objects.create(title='第一篇文章', create_time=now())return render(request, 'article.html') 复制代码
  • 4、查看数据库数据

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

  • 5、查询出来的数据使用localtime函数转换为本地时间

    from django.shortcuts import render from django.views import View # 引入模块 from django.utils.timezone import now, localtime from . import modelsclass 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.py中TIME_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中关于时间处理策略的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。