您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)如何解決Python語言應(yīng)用在MySQL數(shù)據(jù)庫中的問題,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
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")的形式進(jìn)行替換
3.需要進(jìn)行國際化處理時,調(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.編寫好模板后,把擴(kuò)展名修改為.po,運行Tools/i18n/msgfmt.py,生成二進(jìn)制的資源文件
>>> 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)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。