您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何解決Python語言應用在MySQL數據庫中的問題,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
Python語言在廣泛的地方都有應用,在長時間的應用中有不少的問題困擾著我們。
試了很久,無論在connect的時候指定charset='utf8',還是使用set_character_set(),或者執行"SET NAMES UTF8",跟蹤到character_set_name()方法返回的都是latin1...再跟代碼,似乎就跑到mysql-api里去了,反正***解決的辦法也很簡單,就是使用如下方式執行,而不要去拼sql語句……
Python語言 代碼
>>> sql = "INSERT INTO t_user(name,nickname) values(%s,%s)" >>> param = ("張三","張三的昵稱") >>> cursor.execute(sql,param)
使用gettext來實現。其實就是一個文本替換的方式,和java里用ResourceBundle、properties比較類似……
1.導入gettext模塊
Python語言 代碼
import gettext gettext.install('i18ntest', './locale', unicode=True)
參數說明:
作用域:用于限定翻譯文件的主名路徑:翻譯文件所在路徑unicode:使用unicode
2.把代碼里需要國際化的文本全部使用_("text")的形式進行替換
3.需要進行國際化處理時,調用
python 代碼 gettext.translation('i18ntest', './locale', languages=['cn']).install(True)
現在程序寫好了,需要生成所需資源文件了:
1.調用python安裝目錄的 Tools/i18n/pygettext.py抽取所需翻譯的模板
>>> pygettext.py path/to/yourfile.py
將生成一個名為messages.pot的文件
2.生成模板文件后,修改這個模板文件,其中的msgid為鍵值,對應你程序里寫的文本,如:_("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這樣程序啟動時就會讀取這個資源文件,替換對應的文本,實現國際化了。
關于如何解決Python語言應用在MySQL數據庫中的問題就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。