首页 > 解决方案 > Flask SQLAlchemy:属性错误:“函数”对象没有属性“翻译”

问题描述

我正在尝试使用 Flask Restful 将一些值插入到我的数据库中。我正在使用 PyMysql 和 Flask SQlAlchemy 进行数据库连接,但是当我插入时,我得到了

AttributeError: 'function' object has no attribute 'translate'

当我做

db.session.add(self)
db.session.commit()

错误

File "/home/yung/Documents/Projects/Crowlabs/Projects/churchify/venv/lib/python2.7/site-packages/pymysql/converters.py", line 73, in _escape_unicode

def _escape_unicode(value, mapping=None):
    """escapes *value* without adding quote.

    Value should be unicode
    """
    return value.translate(_escape_table)

    if PY2:
        def escape_string(value, mapping=None):
            """escape_string escapes *value* but not surround it with quotes.

我的代码

from db import db

class Test(db.Model):
    __tablename__       = "auth_test"

    id                  = db.Column(db.Integer, primary_key=True)
    username            = db.Column(db.Text)
    password            = db.Column(db.Text)
    email               = db.Column(db.Text)
    type                = db.Column(db.Text)

    def __init__(self, username, password, email, type_):
        self.username       = username
        self.password       = password
        self.email          = email
        self.type           = type_

        db.session.add(self)
        db.session.commit()

这仅在我尝试插入数据库时​​出现,但在检索时效果很好

标签: pythonflaskflask-sqlalchemyflask-restfulpymysql

解决方案


所以我终于明白了。当我使用整数时,Pymysql 期望我的一个值有一个字符串值,所以我所做的就是使用将这些值转换为字符串

str()

它奏效了


推荐阅读