django2中关于时间处理策略
生活随笔
收集整理的這篇文章主要介紹了
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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python学习笔记_读Excel去重
- 下一篇: 一文读懂HTTP/2及HTTP/3特性