欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解django2中關(guān)于時間處理策略

 更新時間:2019年03月06日 09:14:35   作者:水痕001  
這篇文章主要介紹了詳解django2中關(guān)于時間處理策略,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

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

1、 DateField :可以記錄年月日,映射到數(shù)據(jù)庫是 date 類型

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

3、 TimeField :可以記錄時分秒,映射到數(shù)據(jù)庫是 time 類型

二、關(guān)于 navie 時間和 aware 時間的認識

navie時間和aware時間

  • navie沒有指定時區(qū)的,不知道自己的時間。
  • aware指定了時區(qū),知道自己的時間。

pytz庫:專門用來處理時區(qū)的庫,經(jīng)常更新一些時區(qū)的數(shù)據(jù)

astimezone方法

將一個時區(qū)的時間轉(zhuǎn)換為另一個時區(qū)的時間,這個方法只能被'aware'類型的時間調(diào)用,

不能被'navie'類型的時間調(diào)用

import pytz
from datetime import datetime
now = datetime.now() #這是一個navie類型的時間
utc_timezone = pytz.timezone('UTC') #定義UTC的時區(qū)對象
utc_now = now.astimezone(utc_timezone) #將當前時區(qū)時間轉(zhuǎn)換為UTC時區(qū)的時間
>> ValueError: astimezone() cannot be applied to a navie datetime
# 會拋出一個異常,原因就是因為navie類型的時間不能調(diào)用astimezone方法

now = now.replace(tzinfo=pytz.timezone('Asia/Shanghai'))
utc_now = now.astimezone(utc_timezone)
#這時候就可以進行時區(qū)的轉(zhuǎn)換

#更改時間

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

1、在 settings.py 中配置

TIME_ZONE = 'Asia/Shanghai' # 時區(qū)的選擇
# 如果USE_TZ=False,那么django獲取到的當前時間就是一個navie類型的時間,
# 網(wǎng)上很多資料寫的是設(shè)置False,但是實際開發(fā)過程中設(shè)置True
USE_TZ = True

2、在一個 app 的數(shù)據(jù)模型中創(chuàng)建時間的字段

from django.db import models


class 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 models


class 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 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')

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.pyTIME_ZONE = 'Asia/Shanghai' 配置不同的時區(qū),在用戶頁面展示的結(jié)果也會不一樣的。

四、在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、關(guān)于auto_now_add的認識

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

3、關(guān)于auto_now的認識

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

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:

相關(guān)文章

  • 利用Python實現(xiàn)眨眼計數(shù)器的示例代碼

    利用Python實現(xiàn)眨眼計數(shù)器的示例代碼

    這篇文章主要介紹了如何使用Python語言實現(xiàn)對視頻中的人物的眨眼進行計數(shù)并描繪在圖表中,文中的實現(xiàn)步驟講解詳細,感興趣的可以動手試一試
    2022-02-02
  • python如何控制進程或者線程的個數(shù)

    python如何控制進程或者線程的個數(shù)

    這篇文章主要介紹了python如何控制進程或者線程的個數(shù),幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-10-10
  • pycharm導入源碼的具體步驟

    pycharm導入源碼的具體步驟

    在本篇內(nèi)容里小編給大家整理了關(guān)于pycharm導入源碼的具體步驟,有需要的朋友們可以參考學習下。
    2020-08-08
  • 對python周期性定時器的示例詳解

    對python周期性定時器的示例詳解

    今天小編就為大家分享一篇對python周期性定時器的示例詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • python使用turtle庫繪制樹

    python使用turtle庫繪制樹

    這篇文章主要為大家詳細介紹了python使用turtle庫繪制樹,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • django實現(xiàn)類似觸發(fā)器的功能

    django實現(xiàn)類似觸發(fā)器的功能

    今天小編就為大家分享一篇django實現(xiàn)類似觸發(fā)器的功能,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • python連接FTP服務(wù)器的實現(xiàn)方法

    python連接FTP服務(wù)器的實現(xiàn)方法

    本文主要介紹了python連接FTP服務(wù)器的實現(xiàn)方法,主要使用ftp操作進行連接FTP服務(wù)器、獲取當前目錄文件清單、上傳文件等操作,具有一定的參考價值,感興趣的可以了解一下
    2022-06-06
  • Python 裝飾器代碼解析

    Python 裝飾器代碼解析

    裝飾器(Decorators)是 Python 的一個重要部分。簡單地說:他們是修改其他函數(shù)的功能的函數(shù)。他們有助于讓我們的代碼更簡短,也更Pythonic(Python范兒)。大多數(shù)初學者不知道在哪兒使用它們,所以我將要分享幾個示例
    2021-11-11
  • 詳解Python的lambda函數(shù)用法

    詳解Python的lambda函數(shù)用法

    今天給大家?guī)淼氖顷P(guān)于Python的相關(guān)知識,文章圍繞著lambda函數(shù)用法展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • 如何徹底解決python?NameError:name?'__file__'?is?not?defined

    如何徹底解決python?NameError:name?'__file__'?is?not?

    這篇文章主要給大家介紹了關(guān)于如何徹底解決python?NameError:name?'__file__'?is?not?defined的相關(guān)資料,文中通過圖文將解決的辦法介紹的非常詳細,需要的朋友可以參考下
    2023-02-02

最新評論