這篇文章將為大家詳細講解有關(guān)如何解決Python語言應(yīng)用在MySQL數(shù)據(jù)庫中的問題,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
成都創(chuàng)新互聯(lián)專注于臨洮網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供臨洮營銷型網(wǎng)站建設(shè),臨洮網(wǎng)站制作、臨洮網(wǎng)頁設(shè)計、臨洮網(wǎng)站官網(wǎng)定制、小程序制作服務(wù),打造臨洮網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供臨洮網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
Python語言在廣泛的地方都有應(yīng)用,在長時間的應(yīng)用中有不少的問題困擾著我們。
試了很久,無論在connect的時候指定charset='utf8',還是使用set_character_set(),或者執(zhí)行"SET NAMES UTF8",跟蹤到character_set_name()方法返回的都是latin1...再跟代碼,似乎就跑到mysql-api里去了,反正***解決的辦法也很簡單,就是使用如下方式執(zhí)行,而不要去拼sql語句……
Python語言 代碼
>>> sql = "INSERT INTO t_user(name,nickname) values(%s,%s)" >>> param = ("張三","張三的昵稱") >>> cursor.execute(sql,param)
使用gettext來實現(xiàn)。其實就是一個文本替換的方式,和java里用ResourceBundle、properties比較類似……
1.導(dǎo)入gettext模塊
Python語言 代碼
import gettext gettext.install('i18ntest', './locale', unicode=True)
參數(shù)說明:
作用域:用于限定翻譯文件的主名路徑:翻譯文件所在路徑unicode:使用unicode
2.把代碼里需要國際化的文本全部使用_("text")的形式進行替換
3.需要進行國際化處理時,調(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
將生成一個名為messages.pot的文件
2.生成模板文件后,修改這個模板文件,其中的msgid為鍵值,對應(yīng)你程序里寫的文本,如:_("New File"),而msgstr為翻譯后的值。還有就是注意修改文件頭部分Content-Type的charset為合適的編碼,比如utf8
3.編寫好模板后,把擴展名修改為.po,運行Tools/i18n/msgfmt.py,生成二進制的資源文件
>>> msgfmt.py messages.po
將生成一個名為messages.mo的文件
4.把這個mo文件放在正確的位置.比如你在程序中是這樣寫的:
gettext.install('i18ntest', './locale', unicode=True) gettext.translation('i18ntest', './locale', languages=['cn']).install(True)
那么你的程序目錄下需要存在./local/cn/LC_MESSAGES/i18ntest.mo這樣程序啟動時就會讀取這個資源文件,替換對應(yīng)的文本,實現(xiàn)國際化了。
關(guān)于如何解決Python語言應(yīng)用在MySQL數(shù)據(jù)庫中的問題就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。