我正在尝试发布到数据库,但是却收到“ 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链接(原始URL,shortcut_url,访问次数,创建日期)VALUES(?,?,?,?)]
答案 0 :(得分:1)
代替
self.shorten_url = self.create_short_link
尝试
self.shorten_url = self.create_short_link()
错误可能指出函数不是受支持的类型。