内部服务器错误Flask Python

2024-06-15 01:17:53 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我用Python-Flask编写的代码。在这里,我输入一个剧院(剧院表)的数据,然后获取相应的id,然后将屏幕添加到屏幕表中的相应剧院id中。在

问题是Theatre被添加到数据库中,我可以获取id。Screen的代码似乎不起作用(如果我注释掉会话.屏幕添加并提交语句) 如果没有进行屏幕提交,即使回滚也不会发生。在

session_theatre = Session_theatre()
session_screen = Session_screen()
id = 1
if request.method == "POST":
    if form.validate_on_submit():
        name = str(form.name.data)
        city = str(form.location.data)
        address = str(form.address.data)
        no_of_screen = int(form.total_no_screen.data)
        if (name !="" and name!=" " and city != "" and city != " " and address != ""and address != " " and no_of_screen != None):
            t = Theatre(name,city,address,1)
            try:
                session_theatre.add(t)
                session_theatre.commit()
                query = session_theatre.query(Theatre).filter_by(name=name,city =city).all()
                for i in query :
                    id = i
                for i in range (0,no_of_screen):
                    flash(id)
                    screen = Screen(str(i+1),1,20,1,20,id)
                    session_screen.add(screen)
                    session_screen.commit()
                flash("Successfully added !!")
            except :
                session_screen.rollback()
                session_theatre.rollback()
                flash("Oops something went wrong !!")
            finally:
                session_screen.close()
                session_theatre.close()
        else :
            flash("Please fill the input")
return render_template('admin/add_theatre.html',form = form)

屏幕模型

^{pr2}$

Tags: andnonameformidcitydata屏幕
1条回答
网友
1楼 · 发布于 2024-06-15 01:17:53

要从session_theatre的查询中获取列表,必须在末尾添加all()

query = session_theatre.query(Theatre).filter_by(name=name,city =city).all()

该查询返回一个Theatre对象的列表,您可以访问每个Theatre对象的id属性,遍历列表并按其名称访问属性:

^{pr2}$

相关问题 更多 >