日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

django 操作MySQL 中文乱码_Django 连接mysql数据库中文乱码

發布時間:2025/3/15 数据库 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 django 操作MySQL 中文乱码_Django 连接mysql数据库中文乱码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

版本:CentOS6.8 python3.6.4 django1.8.2 數據庫pymysql

我使用的終端是CentOS終端,CentOS桌面版安裝的pycham,windows使用Navicat連接mysql數據庫。

我遇到的情況大致這樣,在CentOS終端進入mysql,然后查詢表,中文顯示沒問題,在Navicat設置了utf-8,中文顯示也沒問題,但是當我在虛擬環境執行python manage.py shell,使用這個shell查詢,中文就亂碼了。

亂碼第一時間想到的是編碼問題,在這里省略一萬字,通過各種查找資料,修改配置文件等等,然后結合各種資料信息,終于解決了這個問題!直接進入解決方法!

1:執行pip install PyMySQL ,查找出PyMySQL的安裝位置,然后執行cd命令進入,cd /root/.virtualenvs/Cole_py3/lib/python3.6/site-packages/pymysql(這里我的安裝目錄);

2:在這個目錄下有一個connections.py文件,直接進入編輯,

vim connections.py;

3:進入編輯connections.py后,shift +:進入命令行,輸入/charset命令查找,打到def?ini(),如下圖所示:

?

把charset=’ ‘改為charset=’utf8’;保存退出。

4:接下來在終端運行mysql,執行命令mysql -uroot -p;

5:運行數據庫后,執行命令show variables like “%char%”,如圖所示;

?

有幾個變量值是latin1的,要把它們改成utf8;網上有資料說執行這個命令

set character_set_client=utf8;

這個執行完之后的確是可以修改,但只是臨時的,退出數據庫重新登陸又恢復原來的數據,要把它永久修改要執行以下;

6:vim /etc/my.cnf,如下圖所示:

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

[mysqld]

collation-server = utf8_unicode_ci

init-connect='SET NAMES utf8'

character-set-server = utf8

保存退出!

7:再去mysql執行命令show variables like “%char%”; ,你會看到如下圖所示:

修改成功!

8:如果有用Navicat的話,要去把編碼改為自動;右擊數據庫,選擇連接屬性——高級——在編碼那里選擇自動。

9:最后一步!你現在運行python manage.py shell或者運行mysql,然后查詢數據,顯示出來還是會亂碼的!!!因為這些數據是你之前輸入進去的,所以必須要把這些數據刪除,然后重新插入!完成!

Navicat

mysql

python manage.py shell

改完重啟mysql數據庫

總結

以上是生活随笔為你收集整理的django 操作MySQL 中文乱码_Django 连接mysql数据库中文乱码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。