簡言之, /etc/my.conf
default_character_set=utf8 配置成了 default_character_set=utf-8
繼而 sqlalchemy 建立表使用的字元編碼格式是 latin1, 如下
|log|
create
table `log
` ( `id`
int(11) not
null
auto_increment,
`record_id`
int(11) default
null
, `command`
varchar(50) default
null
, `sn`
varchar(50) default
null
, `hostname`
varchar(100) default
null
, `idc`
varchar(50) default
null
, `ip`
varchar(50) default
null
, `iloip`
varchar(50) default
null
, `result`
text
, `req_time`
datetime
default
null
, `resp_time`
datetime
default
null,
primary
key(`id`),
key`record_id` (`record_id`)
) engine
=myisam auto_increment=
2default charset=latin1 |
所以即使建立引擎時設定了character 為 utf8, 儲存是也是亂碼, 問題還是出在 mysql server 的配置.
sqlalchemy_database_uri = "mysql+pymysql://work:123456@localhost:3306/work?charset=utf8
"
另外還要把已經建立的 database 的 character 也改成 utf8: alter database clubot character set utf8;
刪掉了已有的表, 新建後 ok.
Flask SQLAlchemy學習總結
配置鍵說明 sqlalchemy database uri 用於連線資料的資料庫。例如 sqlalchemy binds 乙個對映繫結 bind 鍵到 sqlalchemy 連線 uris 的字典。用於繫結多個資料庫 sqlalchemy echo 如果設定成 true sqlalchemy 將會記...
flask SQLAlchemy基本使用
作為資料的操作,最基本的就是增刪改查 常用的sqlalchemy查詢過濾器 過濾器說明 filter 把過濾器新增到原查詢上,返回乙個新查詢 filter by 把等值過濾器新增到原查詢上,返回乙個新查詢 limit 使用指定的值限定原查詢返回的結果 offset 偏移原查詢返回的結果,返回乙個新查...
Flask SQLAlchemy定義模型
模型表示程式使用的資料實體,在flask sqlalchemy中,模型一般是python類,繼承自db.model,db是sqlalchemy類的例項,代表程式使用的資料庫。類中的屬性對應資料庫表中的列。id為主鍵,是由flask sqlalchemy管理。db.column類建構函式的第乙個引數是...