pycircus 2016-11-28 09:53 采纳率: 100%
浏览 3267
已采纳

什么导致SQLAlchemy访问数据库出现警告


from sqlalchemy import create_engine
from consts import DB_URI

eng = create_engine(DB_URI)
with eng.connect() as con:
    con.execute('drop table if exists users')
    con.execute('create table users(Id INT PRIMARY KEY AUTO_INCREMENT, '
                'Name VARCHAR(25))')
    con.execute("insert into users(name) values('xiaoming')")
    con.execute("insert into users(name) values('wanglang')")
    rs = con.execute('select * from users')
    for row in rs:
        print row

consts.py的代码为(用python驱动可以正常连接数据库并操作):

HOSTNAME = 'localhost'
DATABASE = 'john'
USERNAME = 'root'
PASSWORD = '123'
DB_URI = 'mysql://{}:{}@{}/{}'.format(USERNAME, PASSWORD, HOSTNAME, DATABASE)

出现如下警告:
Python27\lib\site-packages\sqlalchemy\engine\default.py:469: Warning: Incorrect string value: '\xD6\xD0\xB9\xFA\xB1\xEA...' for column 'VARIABLE_VALUE' at row 479
cursor.execute(statement, parameters)
(1L, 'xiaoming')
(2L, 'wanglang')

Process finished with exit code 0

数据库为mysql5.7版本
不明白为什么会出现警告,求大神解答!!

  • 写回答

4条回答 默认 最新

  • 小邓在路上 2016-11-29 09:28
    关注

    编码不一致导致的问题,Flask 或者是Django 默认都是UTF-8的,有可能你的数据库服务器的编码格式不一致导致的,
    查看服务器的/etc/my.cnf 文件
    修改:
    1. 修改 /etc/my.cnf 配置文件,然后重启mysqld。

    在[client]下配置:default-character-set=utf8
    在[mysqld]下配置:
    default-character-set=utf8
    init_connect=’SET NAMES utf8′

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?