Python語(yǔ)言應(yīng)用在MySQL數(shù)據(jù)庫(kù)中解決問(wèn)題
Python語(yǔ)言在廣泛的地方都有應(yīng)用,在長(zhǎng)時(shí)間的應(yīng)用中有不少的問(wèn)題困擾著我們。下面我們就詳細(xì)的看看如何在MySQL數(shù)據(jù)庫(kù)中的詳細(xì)應(yīng)用。希望在之后的使用中有所幫助。
試了很久,無(wú)論在connect的時(shí)候指定charset='utf8',還是使用set_character_set(),或者執(zhí)行"SET NAMES UTF8",跟蹤到character_set_name()方法返回的都是latin1...再跟代碼,似乎就跑到mysql-api里去了,反正***解決的辦法也很簡(jiǎn)單,就是使用如下方式執(zhí)行,而不要去拼sql語(yǔ)句……
Python語(yǔ)言 代碼
- >>> sql = "INSERT INTO t_user(name,nickname) values(%s,%s)"
- >>> param = ("張三","張三的昵稱")
- >>> cursor.execute(sql,param)
使用gettext來(lái)實(shí)現(xiàn)。其實(shí)就是一個(gè)文本替換的方式,和java里用ResourceBundle、properties比較類似……
1.導(dǎo)入gettext模塊
Python語(yǔ)言 代碼
- import gettext
- gettext.install('i18ntest', './locale', unicode=True)
參數(shù)說(shuō)明:
作用域:用于限定翻譯文件的主名路徑:翻譯文件所在路徑unicode:使用unicode
2.把代碼里需要國(guó)際化的文本全部使用_("text")的形式進(jìn)行替換
3.需要進(jìn)行國(guó)際化處理時(shí),調(diào)用
- python 代碼
- gettext.translation('i18ntest', './locale', languages=['cn']).install(True)
現(xiàn)在程序?qū)懞昧?,需要生成所需資源文件了:
1.調(diào)用python安裝目錄的 Tools/i18n/pygettext.py抽取所需翻譯的模板
- >>> pygettext.py path/to/yourfile.py
將生成一個(gè)名為messages.pot的文件
2.生成模板文件后,修改這個(gè)模板文件,其中的msgid為鍵值,對(duì)應(yīng)你程序里寫(xiě)的文本,如:_("New File"),而msgstr為翻譯后的值。還有就是注意修改文件頭部分Content-Type的charset為合適的編碼,比如utf8
3.編寫(xiě)好模板后,把擴(kuò)展名修改為.po,運(yùn)行Tools/i18n/msgfmt.py,生成二進(jìn)制的資源文件
- >>> msgfmt.py messages.po
將生成一個(gè)名為messages.mo的文件
4.把這個(gè)mo文件放在正確的位置.比如你在程序中是這樣寫(xiě)的:
- gettext.install('i18ntest', './locale', unicode=True)
- gettext.translation('i18ntest', './locale', languages=['cn']).install(True)
那么你的程序目錄下需要存在./local/cn/LC_MESSAGES/i18ntest.mo這樣程序啟動(dòng)時(shí)就會(huì)讀取這個(gè)資源文件,替換對(duì)應(yīng)的文本,實(shí)現(xiàn)國(guó)際化了。以上就是對(duì)Python語(yǔ)言的詳細(xì)介紹。
【編輯推薦】