最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

django項目運行因中文而亂碼報錯的幾種情況解決

 更新時間:2017年11月07日 09:18:06   作者:柚子純鈞  
django是一個不錯的WEB開源框架。今天測試,發(fā)現(xiàn)有些頁面中文亂碼,后來發(fā)現(xiàn)出現(xiàn)中文亂碼還不止一種情況,所以這篇文章主要給大家介紹了關(guān)于django項目運行過程中因為中文而導(dǎo)致亂碼報錯的幾種情況的解決方法,需要的朋友可以參考下。

前言

django項目開發(fā)過程中,碰到了多種情況下的中文亂碼報錯,在這兒做一下處理總結(jié)。

報錯:UnicodeEncodeError: 'ascii' codec can't encode characters in position x-x: ordinal not in range(128)

1.因代碼中的中文注釋問題的報錯

django項目的.py文件文件中加入了中文注釋,經(jīng)常會因此報錯而導(dǎo)致無法運行,究其原因是編碼的問題,最后的解決辦法是直接在有中文注釋的.py文件的頂部加上:

# -*-coding:utf-8 -*-

2.運行過程中的中文亂碼的報錯

首先確保連接的數(shù)據(jù)庫的基礎(chǔ)設(shè)置是utf-8:

然后確認django項目中的網(wǎng)頁頭部設(shè)置編碼為utf-8,網(wǎng)頁頭部加上代碼:

<meta charset="utf-8">

最后仍然報錯就是因為django項目中我們沒有指明編碼方式,所以按照默認設(shè)置來,而非正常的utf-8,為:

所以項目最后需要在進行編碼操作的地方,或者直接在settings.py中加入:

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

3.項目配置在debian系統(tǒng)中,F(xiàn)ileField字段在admin中因中文文件名上傳報錯

在一個django項目中發(fā)現(xiàn),在本地windows測試環(huán)境中,django admin的文件上傳功能毫無障礙,可是當項目布置在debian環(huán)境中時,中文文件名的文件在admin中無法上傳,并且報中文亂碼的錯,該錯誤的主要原因來自系統(tǒng)編碼問題,該debian系統(tǒng)中未設(shè)置系統(tǒng)編碼語言,均為默認設(shè)置,導(dǎo)致所布置的項目無法正常運行,解決如下:

(1).終端中操作安裝locales

apt-get install locales

(2).重新選擇字符編碼

dpkg-reconfigure locales

(3).空格選擇所有zh_開頭的字符編碼,OK確認下一步,選擇中文UTF-8

(4).debian里需要在~/.bashrc里面最下面加入export LC_ALL=zh_CN.UTF-8或者直接運行export LANG=zh_CN.UTF-8

(5).最后直接reboot重啟服務(wù)器,查看系統(tǒng)編碼,UTF-8中文生效,locale命令可以直接查看系統(tǒng)編碼設(shè)置,此時再運行django項目上傳中文名文件無誤。

附:django郵件亂碼解決方案

python中有email.meeesage 和 email.header 對郵件中的非ASCII進行處理, 因此需要對sendMail函數(shù)中的參數(shù)進行如下處理:

# coding=utf8 
from email.message import Message 
from email.header import Header 
 
mail_from=Header('友好互動', 'utf8') + "god_chen@sina.com"#a************** 
mail_to="god_chen@sina.com" 
mail_subj=Header("測試","utf8")#b*************** 
mail_content='\r\n<div>測試測試郵件</div>\r\n<a href="www.61pad.com">兒童派</a>' 
 
msg=Message() 
msg['Mime-Version']='1.0' 
msg['Content-type']='text/html' 
msg['From']=mail_from 
msg['To']=mail_to 
msg['Subject']=mail_subj 
msg.set_payload(mail_content,'utf8')#c************** 
 
server=connect(sm_host, sm_port, sm_user, sm_password) 
server.sendmail(mail_from, mail_to, msg.as_string()) 
server.close() 
 
def connect(host,port,user,password): 
  "connect server" 
  server=smtplib.SMTP() 
  server.connect(host, port) 
  server.login(user, password) 
  return server 

注:

     a、用Header對象處理發(fā)件人亂碼

     b、用Header對象處理主題亂碼

     c、用Message對象處理正文亂碼

     這里統(tǒng)一采用utf8編碼

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • python屬于軟件嗎

    python屬于軟件嗎

    在本篇內(nèi)容里小編給Python新手整理了關(guān)于python是軟件嗎的相關(guān)知識點,有興趣的朋友們可以閱讀下。
    2020-06-06
  • Python控制臺輸出俄羅斯方塊移動和旋轉(zhuǎn)功能

    Python控制臺輸出俄羅斯方塊移動和旋轉(zhuǎn)功能

    這篇文章主要介紹了Python控制臺輸出俄羅斯方塊移動和旋轉(zhuǎn)功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • python字典翻轉(zhuǎn)的實現(xiàn)

    python字典翻轉(zhuǎn)的實現(xiàn)

    本文主要介紹了python字典翻轉(zhuǎn)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Django實現(xiàn)學(xué)生管理系統(tǒng)

    Django實現(xiàn)學(xué)生管理系統(tǒng)

    這篇文章主要為大家詳細介紹了Django實現(xiàn)學(xué)生管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • django中path和url函數(shù)的具體使用

    django中path和url函數(shù)的具體使用

    本文主要介紹了django中path和url函數(shù)的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • python實現(xiàn)隨機梯度下降(SGD)

    python實現(xiàn)隨機梯度下降(SGD)

    這篇文章主要為大家詳細介紹了python實現(xiàn)隨機梯度下降SGD,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • 淺析python實現(xiàn)動態(tài)規(guī)劃背包問題

    淺析python實現(xiàn)動態(tài)規(guī)劃背包問題

    這篇文章主要介紹了python實現(xiàn)動態(tài)規(guī)劃背包問題,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • django日志默認打印request請求信息的方法示例

    django日志默認打印request請求信息的方法示例

    這篇文章主要給大家介紹了關(guān)于django日志默認打印request請求信息的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用django具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • python使用PyFetion來發(fā)送短信的例子

    python使用PyFetion來發(fā)送短信的例子

    這篇文章主要介紹了python使用PyFetion來發(fā)送短信的例子,需要的朋友可以參考下
    2014-04-04
  • Python?Base64編碼和解碼操作

    Python?Base64編碼和解碼操作

    Base64?就是一種基于64個可打印字符來表示二進制數(shù)據(jù)的方法,這篇文章主要介紹了Python?Base64編碼和解碼,需要的朋友可以參考下
    2022-12-12

最新評論

上林县| 外汇| 石泉县| 通州区| 枞阳县| 大悟县| 周至县| 郯城县| 泉州市| 吴旗县| 恭城| 锦屏县| 武冈市| 根河市| 石渠县| 南皮县| 兴文县| 双鸭山市| 绿春县| 泾川县| 三江| 塔河县| 旬阳县| 峨山| 阿勒泰市| 马龙县| 阿克| 浙江省| 舟山市| 沂南县| 宿松县| 盐源县| 灌南县| 乌兰县| 屏山县| 绥滨县| 宁陕县| 崇阳县| 普兰县| 武城县| 高台县|