这是我用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}$
要从
session_theatre
的查询中获取列表,必须在末尾添加all()
:该查询返回一个
^{pr2}$Theatre
对象的列表,您可以访问每个Theatre
对象的id
属性,遍历列表并按其名称访问属性:相关问题 更多 >
编程相关推荐