sqlalchemy是python下一个很强大的ORM,最近刚刚开始使用。当然由于只是刚刚接触,只学习使用了他的DB API,对于Mapper还有些不得要领。
最近写的一个程序,用到MySql数据库,有些数据库读写的操作,对sqlalchemy已经有了些了解,自然要练练,更何况它能大幅度的提高程序开发的效率。于是就驱动sqlalchemy,用它开始了第一个数据库应用程序的编写。
代码说话:
#coding=utf-8
from sqlalchemy import *connstr= 'mysql://uid:pwd@localhost/mydb'db= create_engine(connstr, echo=True)
metadata=MetaData(db)
table= Table('mytable', metadata, autoload=True)
i=table.insert()
i.execute(c1='value')
我通过上面的代码连接连接到数据库,打开表并执行插入数据的操作。执行程序,检查结果,ok,没有问题,心里一阵暗爽。
但当我
把这段代码加入到程序中时,问题出来了,所有插入的中文全部是乱码,囧。按照常规思路,比较简单的做法是对中文进行编码转化.我的数据库表使用的是
utf-8编码,于是写了这样的代码:'中文'.decode('gbk').encode('utf8'),结果依然是乱码。