【问题标题】:Python "InterfaceError: (sqlite3.InterfaceError) Error binding parameter 1 - probably unsupported type."Python“InterfaceError:(sqlite3.InterfaceError)错误绑定参数1 - 可能不受支持的类型。”
【发布时间】:2020-02-24 05:37:59
【问题描述】:

我正在尝试发布到数据库,但我收到“sqlalchemy.exc.InterfaceError”。我正在使用 Flask/flask_sqlalchemy 扩展。

Models.py

class Link(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    original_url = db.Column(db.String(512))
    shorten_url = db.Column(db.String(14), unique=True)
    visits = db.Column(db.Integer, default=0)
    date_created = db.Column(db.DateTime, default=datetime.now)

    #  inheritance
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.shorten_url = self.create_short_link

    def create_short_link(self):
        characters = string.digits + string.ascii_letters 
        shorten_url = ''.join(choices(characters, k=3))

        link = self.query.filter_by(shorten_url=shorten_url).first()

        if link: 
           return self.create_short_link

        return shorten_url

Routes.py

@short.route('/add_link', methods=['POST'])
def add_link():
        original_url = request.form['original_url']
        link = Link(original_url=original_url)
        db.session.add(link)
        db.session.commit()

        return render_template('link_added.html',
          new_link=link.shorten_url, original_url=link.original_url)

追溯

sqlalchemy.exc.InterfaceError: (sqlite3.InterfaceError) 错误绑定参数 1 - 可能是不受支持的类型。 [SQL:INSERT INTO 链接(original_url,short_url,访问,date_created)VALUES(?,?,?,?)]

【问题讨论】:

    标签: python sqlite flask flask-sqlalchemy


    【解决方案1】:

    代替

    self.shorten_url = self.create_short_link
    

    试试

    self.shorten_url = self.create_short_link()
    

    错误可能指出函数不是受支持的类型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-04
      相关资源
      最近更新 更多