【发布时间】:2021-03-21 03:02:21
【问题描述】:
谁能告诉我我做错了什么? 我从 IMDBPY 中提取数据,一切都匹配,但现在它不会进入我的表格?!
sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) 无法适应类型“电影” [SQL:插入电影(标题,“演员”,情节,用户名)值(%(标题)s,%(演员)s,%(情节)s,%(用户名)s)返回movie.id] [参数:{'title':
泰坦尼克号 (1997)>, 'cast': Leonardo DiCaprio >, 'plot': '一个 17 岁的贵族爱上了乘坐豪华、命运多舛的 R.M.S. Titanic.::j-jessie-weaver', '用户名': 'plzwork'}] (此错误的背景:http://sqlalche.me/e/13/f405)
电影表
class Movie(db.Model):
"""movies."""
__tablename__ = "movie"
id = db.Column(db.Integer,
primary_key=True)
title = db.Column(db.String(100),
nullable=False)
cast = db.Column(db.Text)
plot = db.Column(db.Text)
username = db.Column(
db.String(20),
db.ForeignKey('users.username'),
nullable=False,
)
将电影添加到数据库
@app.route("/users/<username>/movies/new", methods=["GET", "POST"])
def movie_show(username):
"""Show Movie Search Form and process it."""
if 'username' not in session or username != session['username']:
raise Unauthorized()
form= MovieForm()
if form.validate_on_submit():
title = form.title.data
cast= form.cast.data
plot=form.plot.data
title=moviesDB.search_movie(title)[0]
moviesDB.update(title)
cast=title['cast'][0]
moviesDB.update(title)
plot=title['plot'][0]
moviesDB.update(title)
movie = Movie(
title=(title),
cast=(cast),
plot= (plot),
username=username)
print('title', title)
print('plot', plot)
db.session.add(movie)
db.session.commit()
return redirect(f"/users/{movie.username}")
else:
return render_template("movies/new.html", form=form)
register_adapter(Movie,movie_show)
【问题讨论】:
标签: python database forms formatting psql