日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

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

编程问答

django2中关于时间处理策略

發(fā)布時間:2024/4/17 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 django2中关于时间处理策略 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、django中數(shù)據(jù)模型關于時間字段的認識

  • 1、DateField:可以記錄年月日,映射到數(shù)據(jù)庫是date類型
  • 2、DateTimeField:可以記錄年月日時分秒,映射到數(shù)據(jù)庫是datetime類型
  • 3、TimeField:可以記錄時分秒,映射到數(shù)據(jù)庫是time類型

二、關于navie時間和aware時間的認識詳細查看

三、在django中正確的使用時間

  • 1、在settings.py中配置

    TIME_ZONE = 'Asia/Shanghai' # 時區(qū)的選擇 # 如果USE_TZ=False,那么django獲取到的當前時間就是一個navie類型的時間, # 網(wǎng)上很多資料寫的是設置False,但是實際開發(fā)過程中設置True USE_TZ = True 復制代碼
  • 2、在一個app的數(shù)據(jù)模型中創(chuàng)建時間的字段

    from django.db import modelsclass ArticleModel(models.Model):"""文章的模型"""title = models.CharField(max_length=100, verbose_name='文章標題')create_time = models.DateTimeField(verbose_name='文章創(chuàng)建時間')class Meta(object):db_table = 'article'def __str__(self):return '<ArticleModel>({}, {})'.format(self.title, self.create_time) 復制代碼
  • 3、在視圖類中手動的添加一條數(shù)據(jù)

    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、查看數(shù)據(jù)庫數(shù)據(jù)

實際上我這是差不多下午13點了,剛好相差8小時

  • 5、查詢出來的數(shù)據(jù)使用localtime函數(shù)轉(zhuǎn)換為本地時間

    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)中使用(自己會轉(zhuǎn)換為你電腦本地時區(qū)的時間)

    <p>{{ article.title }}</p> <p>{{ article.create_time }}</p> <!--直接使用django內(nèi)置過濾器格式化數(shù)據(jù)--> <p>{{ article.create_time | date:"Y-m-d H:i:s" }}</p> 復制代碼
  • 7、如果你在settings.py中TIME_ZONE = 'Asia/Shanghai'配置不同的時區(qū),在用戶頁面展示的結果也會不一樣的。

四、在django中數(shù)據(jù)模型使用時間字段

  • 1、使用字段

    create_time = models.DateTimeField(auto_now_add=True, null=True, verbose_name='創(chuàng)建時間') update_time = models.DateTimeField(auto_now=True, null=True, verbose_name='修改時間') 復制代碼
  • 2、關于auto_now_add的認識

    auto_now_add會在第一次添加數(shù)據(jù)的時候自動獲取當前時間

  • 3、關于auto_now的認識

    auto_now會在每次對象調(diào)用save方法的時候更新為當前時間

總結

以上是生活随笔為你收集整理的django2中关于时间处理策略的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。