溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何解決Python語言應(yīng)用在MySQL數(shù)據(jù)庫中的問題

發(fā)布時間:2021-10-28 16:34:24 來源:億速云 閱讀:119 作者:柒染 欄目:編程語言

這篇文章將為大家詳細(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é)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(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)容。

AI