我正在使用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)