欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言

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

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

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

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

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

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

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

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

<meta charset="utf-8">

最后仍然報錯就是因為django項目中我們沒有指明編碼方式,所以按照默認設置來,而非正常的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)中未設置系統(tǒng)編碼語言,均為默認設置,導致所布置的項目無法正常運行,解決如下:

(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重啟服務器,查看系統(tǒng)編碼,UTF-8中文生效,locale命令可以直接查看系統(tǒng)編碼設置,此時再運行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)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • Pycharm中切換pytorch的環(huán)境和配置的教程詳解

    Pycharm中切換pytorch的環(huán)境和配置的教程詳解

    這篇文章主要介紹了Pycharm中切換pytorch的環(huán)境和配置,本文給大家介紹的非常詳細,對大家的工作或?qū)W習具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • 在PyCharm中批量查找及替換的方法

    在PyCharm中批量查找及替換的方法

    今天小編就為大家分享一篇在PyCharm中批量查找及替換的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 詳解如何通過Python制作一個密碼生成器

    詳解如何通過Python制作一個密碼生成器

    定期更換密碼是一種非常重要的安全措施,這種做法可以有效地保護你的賬戶和個人信息不受黑客和網(wǎng)絡攻擊者的侵害。所以本文就來用Python制作一個密碼生成器吧
    2023-05-05
  • Python生成隨機數(shù)的方法詳解(最全)

    Python生成隨機數(shù)的方法詳解(最全)

    Python生成隨機數(shù)的方法有很多,譬如random模塊、NumPy庫、secrets模塊等。本文為大家整理了五個生成隨機數(shù)的方法(應該是最全的了吧),希望對大家有所幫助
    2023-02-02
  • Python+PyQt5自制監(jiān)控小工具

    Python+PyQt5自制監(jiān)控小工具

    這篇文章主要為大家詳細介紹了如何通過使用python實現(xiàn)對計算機攝像頭的調(diào)用從而實現(xiàn)攝像監(jiān)控的功能,文中的示例代碼講解詳細,需要的可以參考一下
    2023-03-03
  • Python importlib動態(tài)導入模塊實現(xiàn)代碼

    Python importlib動態(tài)導入模塊實現(xiàn)代碼

    這篇文章主要介紹了Python importlib動態(tài)導入模塊實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • Python中l(wèi)oguru日志庫的使用

    Python中l(wèi)oguru日志庫的使用

    本文主要介紹了Python中l(wèi)oguru日志庫的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • Python pandas中的iloc使用小結(jié)

    Python pandas中的iloc使用小結(jié)

    iloc是Pandas中一個重要的工具,用于按照整數(shù)位置選擇數(shù)據(jù),通過使用整數(shù)索引,它使得在數(shù)據(jù)處理中按照位置選擇數(shù)據(jù)變得簡單和直觀,這篇文章主要介紹了Python pandas中的iloc使用方法,需要的朋友可以參考下
    2024-06-06
  • 手把手教你搭建python+selenium自動化環(huán)境(圖文)

    手把手教你搭建python+selenium自動化環(huán)境(圖文)

    本文主要介紹了手把手教你搭建python+selenium自動化環(huán)境,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • Python實現(xiàn)類似jQuery使用中的鏈式調(diào)用的示例

    Python實現(xiàn)類似jQuery使用中的鏈式調(diào)用的示例

    chained calls鏈式調(diào)用其實多是指一種方法鏈的程序?qū)懛?這里我們來看一下Python實現(xiàn)類似jQuery使用中的鏈式調(diào)用的示例,首先說明一下什么是鏈式調(diào)用:
    2016-06-06

最新評論