IMDBPY 发布路线未更新到 MovieForm

问题描述

我正在从 imdbpy 创建电影数据库,但在将搜索到的电影添加数据库时遇到问题。

有人可以看看我的代码,并就我需要更改的代码部分的片段给我任何建议吗?

这真的很重要,谢谢!

电影演员和情节没有保存到我的数据库中,只是标题 数据库

电影=#从电影中选择*; 身份证 |标题 |演员 |情节|用户名 ----+------------+------+------+------- 1 |泰坦尼克号 | | | eftn123 2 |泰坦尼克号 | | | eftn123 4 |泰坦尼克号 | | | eftn123 5 |泰坦尼克号 | | | eftn123 6 |泰坦尼克号 | | | eftn123 7 |晚餐和电影 | | | eftn123 8 |晚餐和电影 | | | eftn123 9 |晚餐和电影 | | | eftn123 10 |青少年泰坦| 高分辨率照片| CLIPARTO | |请工作

错误

sqlalchemy.exc.ProgrammingError sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) 无法适应类型“函数” [sql: INSERT INTO movie (title,"cast",plot,username) VALUES (%(title)s,%(cast)s,%(plot)s,%(username)s) RETURNING movie.id] [参数: {'title': 'teen titans','cast': ,'plot': '','username': 'plzwork'}] (此错误的背景:http://sqlalche.me/e/13/f405

回溯(最近一次调用最后一次) 文件“C:\Users\eftn\OneDrive\Desktop\movieapi\venv\Lib\site-packages\sqlalchemy\engine\base.py”,第 1276 行,在 _execute_context self.dialect.do_execute( 文件“C:\Users\eftn\OneDrive\Desktop\movieapi\venv\Lib\site-packages\sqlalchemy\engine\default.py”,第 593 行,在 do_execute 在这个framecursor.execute(statement,parameters)中打开一个交互式python shell

获取电影详情

class GetMovieDetails(object):
def __init__(self,movie):
    self.movie =movie
    
def get_details(self,info_type):
    return self.movie.get(info_type) 

def movie_details(self):
    movie_details = {}
    movie_details['title'] = '-' if self.get_details('title') is None else self.get_details('title')
    movie_details['cast'] = ','.join('-' if self.get_details('cast') is None else [i['name'] for i in list(self.get_details('cast'))])
    movie_details['plot'] = '-' if self.get_details('plot') is None else self.get_details('plot')[0]
    return movie_details
    

搜索电影路线

@app.route("/users/<username>//movies/new",methods=["GET","POST"])

def search_movies(用户名):

"""Show  Movie Search Form and process it."""
if 'username' not in session or username != session['username']:
    raise Unauthorized()

"""Search movie and show movie"""

query= request.args.get('Movie')

movies=moviesDB.search_movie(query)
movie_id=movies[0].movieID

movie = moviesDB.get_movie(movie_id,info=['title','cast','plot'])

movie_details_obj = GetMovieDetails(movie)
movie_details_dict = movie_details_obj.movie_details()
results =[]
for movie in movies:
    results.append(
    {'title': movie['title'],'year': movie['year'],'cast': movie['cast'],'plot': movie['plot'],})
    return (query,results)

添加数据库

@app.route("/users/<username>/movies/new","POST"])

def movie_show(用户名):

"""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
    list_cast= form.cast.data
    plot=form.plot.data
    
    

    
    
  
    movie = Movie(
    
    title=(title),cast=(cast),plot= (plot),username=username)
    
    

    print('title',title)
    print('cast',list_cast)
    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)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...