python - Flask-SQLAlchemy+mysql 搜索返回编码错误?
黄舟
黄舟 2017-04-17 17:54:47
0
3
403

用Flask-SQLAlchemy+mysql插入中文,再查询返回时报错

UnicodeEncodeError: 'ascii' codec can't encode characters in position 44-46: ordinal not in range(128)

# -*- coding: utf-8 -*-
from flask import Flask
from sqlalchemy import create_engine
from flask.ext.sqlalchemy import SQLAlchemy
from datetime import datetime
from sqlalchemy.orm import scoped_session, sessionmaker
import config
import os  
basedir = os.path.abspath(os.path.dirname(__file__))

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = config.DB_URI
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
db = SQLAlchemy(app,use_native_unicode='utf8')

class Role(db.Model):
    __tablename__ = 'roles'
    id = db.Column(db.Integer, primary_key=True) 
    name = db.Column(db.String(64), unique=True)

    def __repr__(self):
        return '<Role %r>' % self.name
    
print(config.DB_URI)     
print(Role.query.all())


数据库status已经全部设置成utf8,表也是utf8 在role的表中已经有中文数据 但不知道如何是好,还是报错

用的是python3

mysql status:

error:

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

모든 응답(3)
伊谢尔伦

import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')

加上去就好了! python好坑

阿神

如果数据库没问题那就试试

reload(sys)
sys.setdefaultencoding('utf8')
刘奇

文件的一开头也可以写

对于一般的py文件可以这样处理:

_*_ coding: utf-8 _*_

然后

import sys
reload(sys)
sys.setdefaultencoding('utf8')
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!