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

在Django的模型和公用函數(shù)中使用惰性翻譯對象

 更新時(shí)間:2015年07月27日 16:15:25   投稿:goldensun  
這篇文章主要介紹了在Django的模型和公用函數(shù)中使用惰性翻譯對象,Django是豐富多彩的Python框架中人氣最高的一個(gè),需要的朋友可以參考下

在模型和公用函數(shù)中,使用ugettext_lazy()和ungettext_lazy()來標(biāo)記字符串是很普遍的操作。 當(dāng)你在你的代碼中其它地方使用這些對象時(shí),你應(yīng)當(dāng)確定你不會(huì)意外地轉(zhuǎn)換它們成一個(gè)字符串,因?yàn)樗鼈儜?yīng)被盡量晚地轉(zhuǎn)換(以便正確的地域生效) 這需要使用幾個(gè)幫助函數(shù)。
拼接字符串: string_concat()

標(biāo)準(zhǔn)Python字符串拼接(''.join([...]) ) 將不會(huì)工作在包括惰性翻譯對象的列表上。 作為替代,你可以使用django.utils.translation.string_concat(), 這個(gè)函數(shù)創(chuàng)建了一個(gè)惰性對象,其連接起它的內(nèi)容 并且 僅當(dāng)結(jié)果被包括在一個(gè)字符串中時(shí)轉(zhuǎn)換它們?yōu)樽址?。 例如:

from django.utils.translation import string_concat
# ...
name = ugettext_lazy(u'John Lennon')
instrument = ugettext_lazy(u'guitar')
result = string_concat([name, ': ', instrument])

System Message: ERROR/3 (<string>, line 519)

Error in “cnid” directive: no content permitted.

.. cnid:: 109


  在這種情況下,當(dāng)

System Message: WARNING/2 (<string>, line 523)

Explicit markup ends without a blank line; unexpected unindent.

result 自己被用與一個(gè)字符串時(shí), result 中的惰性翻譯將僅被轉(zhuǎn)換為字符串(通常在模板渲染時(shí)間)。
allow_lazy() 修飾符

Django提供很多功能函數(shù)(如:取一個(gè)字符串作為他們的第一個(gè)參數(shù)并且對那個(gè)字符串做些什么)。(尤其在 django.utils 中) 這些函數(shù)被模板過濾器像在其他代碼中一樣直接使用。

如果你寫你自己的類似函數(shù)并且與翻譯打交道,當(dāng)?shù)谝粋€(gè)參數(shù)是惰性翻譯對象時(shí),你會(huì)面臨“做什么”的難題。 因?yàn)槟憧赡茉谝晥D之外使用這個(gè)函數(shù)(并且因此當(dāng)前線程的本地設(shè)置將會(huì)不正確),所以你不想立即轉(zhuǎn)換其為一個(gè)字符串。

象這種情況,請使用 django.utils.functional.allow_lazy() 修飾符。 它修改這個(gè)函數(shù)以便 假如第一個(gè)參數(shù)是一個(gè)惰性翻譯, 這個(gè)函數(shù)的賦值會(huì)被延后直到它需要被轉(zhuǎn)化為一個(gè)字符串為止。

例如:

from django.utils.functional import allow_lazy

def fancy_utility_function(s, ...):
  # Do some conversion on string 's'
  # ...
fancy_utility_function = allow_lazy(fancy_utility_function, unicode)

allow_lazy() 裝飾符 采用了另外的函數(shù)來裝飾,以及一定量的,原始函數(shù)可以返回的特定類型的額外參數(shù) (*args ) 。 通常,在這里包括 unicode 就足夠了并且確定你的函數(shù)將僅返回Unicode字符串。

使用這個(gè)修飾符意味著你能寫你的函數(shù)并且假設(shè)輸入是合適的字符串,然后在末尾添加對惰性翻譯對象的支持。

相關(guān)文章

  • 簡單了解Python下用于監(jiān)視文件系統(tǒng)的pyinotify包

    簡單了解Python下用于監(jiān)視文件系統(tǒng)的pyinotify包

    這篇文章主要介紹了Python下用于監(jiān)視文件系統(tǒng)的pyinotify包,pyinotify基于inotify事件驅(qū)動(dòng)機(jī)制,需要的朋友可以參考下
    2015-11-11
  • Python學(xué)習(xí)筆記嵌套循環(huán)詳解

    Python學(xué)習(xí)筆記嵌套循環(huán)詳解

    這篇文章主要介紹了Python學(xué)習(xí)筆記嵌套循環(huán)詳解,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07
  • 一篇文章弄懂Python中的可迭代對象、迭代器和生成器

    一篇文章弄懂Python中的可迭代對象、迭代器和生成器

    這篇文章主要給大家介紹了關(guān)于Python中可迭代對象、迭代器和生成器的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Python自定義主從分布式架構(gòu)實(shí)例分析

    Python自定義主從分布式架構(gòu)實(shí)例分析

    這篇文章主要介紹了Python自定義主從分布式架構(gòu),結(jié)合實(shí)例形式分析了主從分布式架構(gòu)的結(jié)構(gòu)、原理與具體的代碼實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-09-09
  • scrapy爬蟲實(shí)例分享

    scrapy爬蟲實(shí)例分享

    這篇文章主要介紹了scrapy爬蟲實(shí)例分享,分享了四則Python爬蟲實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2017-12-12
  • Python HTMLTestRunner如何下載生成報(bào)告

    Python HTMLTestRunner如何下載生成報(bào)告

    這篇文章主要介紹了Python HTMLTestRunner如何下載生成報(bào)告,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • python socket多線程通訊實(shí)例分析(聊天室)

    python socket多線程通訊實(shí)例分析(聊天室)

    這篇文章主要介紹了python socket多線程通訊方法,以聊天室程序?qū)嵗治隽薖ython基于Socket實(shí)現(xiàn)多線程通信的相關(guān)技巧,需要的朋友可以參考下
    2016-04-04
  • 對python中for、if、while的區(qū)別與比較方法

    對python中for、if、while的區(qū)別與比較方法

    今天小編就為大家分享一篇對python中for 、if、 while的區(qū)別與比較方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Python爬取網(wǎng)站圖片并保存的實(shí)現(xiàn)示例

    Python爬取網(wǎng)站圖片并保存的實(shí)現(xiàn)示例

    這篇文章主要介紹了Python爬取網(wǎng)站圖片并保存的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • 使用pytorch加載并讀取COCO數(shù)據(jù)集的詳細(xì)操作

    使用pytorch加載并讀取COCO數(shù)據(jù)集的詳細(xì)操作

    這篇文章主要介紹了使用pytorch加載并讀取COCO數(shù)據(jù)集,基礎(chǔ)知識(shí)包括元祖、字典、數(shù)組,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05

最新評論