首页 > 代码库 > python环境下使用sqlalchemy和mysql搭建数据库环境及编码
python环境下使用sqlalchemy和mysql搭建数据库环境及编码
为了兼容中文和其他国家的文字,我们将编码格式都设置为utf8
mysql设置utf8可以直接修改配置文件,或则通过命令行下的环境变量来进行设置
sqlalchemy设置编码字符集一定要在数据库访问的URL上增加charset=utf8,否则数据库的连接就不是utf8的编码格式
eng = create_engine(‘mysql://root:root@localhost:3306/test2?charset=utf8‘,echo=True)
注意URL的后面部分
charset=utf8
这个很关键,除了上述两处需要设置和修改的地方,另外python文件需要将编码格式设置为utf8(不带BOM)的,这样忘数据库
直接存储数据,就可以直接用‘中文‘ ,或则u‘中文‘来正确存储到mysql数据库中。
mysql数据库在dos命令窗口中不能正确显示中文,如果要查看utf8编码格式的中文,最好是下载一个mysql的可视化工具。
目前我感觉不错的mysql可视化工具是SQLyog。
下面是我写的使用sqlalchemy写入数据库的demo代码,可以参考参考。
#coding=utf-8 from sqlalchemy import Column, String, create_engine from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() class User(Base): __tablename__ = 'user2' id = Column(String(20),primary_key=True) name = Column(String(20)) class School(Base): __tablename__ = 'school' id = Column(String(20), primary_key=True) name = Column(String(20)) #创建从Base派生的所有表 def createAll(eng): Base.metadata.create_all(eng) #删除DB中所有的表 def dropAll(eng): Base.metadata.drop_all(eng) #删除数据库中从Base派生的所有表 #创建session对象 if __name__ == '__main__': #创建数据库引擎 eng = create_engine('mysql://root:root@localhost:3306/test2?charset=utf8',echo=True) #设置回显 #eng.echo = True #创建DBSession类型 DBSession = sessionmaker(bind=eng) #创建session对象 session = DBSession() try: #创建表 createAll(eng) #创建新User对象 new_user = User(id='13', name='我еёжжщщщьфффтххмлл') print(u'你好吗') #添加到session session.add(new_user) #提交保存到数据库 session.commit() except BaseException,e: print('e.message=%s' % str(e.message)) finally: session.close() #eng.close()
python环境下使用sqlalchemy和mysql搭建数据库环境及编码
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。