SQLAlchemy在建立資料庫表單的編碼問題

2021-10-09 07:11:49 字數 1101 閱讀 7152

在用flsk-sqlalchemy向資料庫中建立表單時,編碼方式總是:latin1_swedish_ci

而我在向表單中傳中文是卻報錯:

sqlalchemy.exc.dataerror: (pymysql.err.dataerror) (1366, 「incorrect string value: 『\xe7\xa8\x8b\xe5\xba\x8f…』 for column 『course』 at row 1」)

這個報錯原因是因為你的資料庫中的編碼方式不是utf8,而導致中文輸入錯誤

解決方法:

第一種在資料庫中修改

1.檢視表單的編碼方式:

使用sql語句:「show full columns from 表名」 來檢視當前**的編碼

發先我的編碼方式全是預設的latin,不支援中文傳輸,要改為utf8

2.修改他們的編碼方式:

alter

table 表名 change 列名 列名 varchar

(100

)character

set utf8 collate utf8_general_ci null

default

null

;

修改title的編碼方式:

第二種方法總根本上解除:

在通過sqlal建立表單是直接定義編碼方式:

1.在sqlalchemy_database_uri直接加編碼方式:

'mysql+pymysql:'
2.在建立模板類,只需要在建立表結構時設定__table_args__

__table_args__ =

如:

sqlalchemy建立資料庫自動對映

coding utf 8 from datetime import datetime from sqlalchemy.ext.automap import automap base from sqlalchemy.orm import sessionmaker from sqlalchemy imp...

SQLAlchemy建立資料庫模型之間的關係

一對多關係,單作者 多文章,外來鍵不可少 外來鍵 foreignkey 總在多的那邊定義,關係 relationship 總在單的那邊定義 class author db.model id db.column db.integer,primary key true name db.column db...

SQLAlchemy連線資料庫建立表

連線資料庫,建立表 defcreate all engine create engine mysql pymysql max overflow 0,超過連線池大小外最多建立的連線 pool size 5,連線池大小 pool timeout 30,池中沒有執行緒最多等待的時間,否則報錯 pool r...