小编tmr*_*lvi的帖子

异常中的SQLAlchemy Unicode问题

我正在使用postgres/SQLAlchemy/Flask-Admin开发Flask应用程序.但是,在Admin界面中,自unicode(exc)提升以来,无法报告包含Unicode字母的任何DB错误UnicodeDecodeError.

我找到了那个问题 sqlalchemy.exc

class StatementError(SQLAlchemyError):
    ...
    def __unicode__(self):
        return self.__str__()
Run Code Online (Sandbox Code Playgroud)

并通过以下方式重现问题:

class A(Base):
    __tablename__="a"
    id = Column(Integer, primary_key=True)
    name = Column(String)
    name2 = Column(String, nullable=False)

session = Session()
a = A(name=u"?????")
session.add(a)

try:
    session.commit()
except Exception as e:
    print(repr(e))
    print("------------------")
    print(unicode(e))
Run Code Online (Sandbox Code Playgroud)

哪个回报:

ProgrammingError('(psycopg2.ProgrammingError) column "name" of relation "a" does not exist\nLINE 1: INSERT INTO a (name, name2) VALUES (\'\xd7\xa2\xd7\x91\xd7\xa8\xd7\x99\xd7\xaa\', NULL) RETURNING...\n                       ^\n',)
------------------
Traceback (most recent call last):
  File "test.py", line 27, in <module>
    print(unicode(e))
UnicodeDecodeError: …
Run Code Online (Sandbox Code Playgroud)

postgresql unicode sqlalchemy python-2.x

7
推荐指数
1
解决办法
442
查看次数

标签 统计

postgresql ×1

python-2.x ×1

sqlalchemy ×1

unicode ×1