用瓶子处理单条路线上的多个帖子
handling multiple posts on single route with bottle
我有两个表格需要 "post" 在同一条路线上。
- 是 "search",它是应用程序上所有路线的基本模板的一部分,并且
- 这是 "submit" 并且特定于路线并且是子模板的一部分。
我如何can/do区分这两者"post"?
在 bottle 中,我试图通过使用表单的 "name" 来挑选出 "POST" 请求 - 代码应该是什么样的?
瓶子:
@route('/pending', method=['GET', 'POST'])
def pending():
session = db_session
if (request.POST.get('name') == 'search_request'):
return "search"
if (request.POST.get('name') == 'submit_asset'):
return "submit"
session = db_session
format_id = request.forms.get('submit_asset')
print format_id
result_format_metadata = session.query(FormatMetadata).filter(FormatMetadata.id==format_id).first()
result_format_metadata.id = format_id
result_format_metadata.stateid = 4
session.commit()
redirect("/pending")
这是来自基本模板的表单,它是导航栏上的搜索功能并且在所有路线上:
<form class="navbar-form navbar-left" role="search" method="post" >
<div class="form-group">
<input name="search_request" type="text" class="form-control" placeholder="Search" >
</div>
</form>
这是特定于 /pending 路由的提交表单:
<form action="/pending" method="post"><button name="submit_asset" value="{{row.format_id}}"/>Submit</form>
好的,我找到了:
@route('/pending', method=['GET', 'POST'])
def musicvideopending():
session = db_session
if request.forms.get('search_request'):
print "search"
elif request.forms.get('submit_asset'):
print "submit"
format_id = request.forms.get('submit_asset')
print format_id
result_format_metadata = session.query(FormatMetadata).filter(FormatMetadata.id==format_id).first()
result_format_metadata.id = format_id
result_format_metadata.stateid = 4
session.commit()
redirect("/pending")
else:
print "nothing"
date = "2015-11-19 23:14:06"
result_video = session.query(FormatMetadata).filter(FormatMetadata.id).all()
result_videoID = FormatMetadata.id
result_pending = session.query(Metadata).filter(Metadata.format_id==result_videoID).filter(FormatMetadata.stateid==1).all()
result_md_done = session.query(Metadata).filter(Metadata.format_id==result_videoID).filter(FormatMetadata.stateid==3).all()
result_date_24h = session.query(Metadata).filter(Metadata.format_id==result_videoID).filter(FormatMetadata.created_date).all()
output = template("pending", rows_pending=result_pending, rows_md_done=result_md_done, rows_per_24=result_date_24h, start_date=date, end_date=date)
return output
基本我只需要将 if 语句移动到函数的顶部并使用 request.forms.get
来确定哪个形式执行 post
我有两个表格需要 "post" 在同一条路线上。
- 是 "search",它是应用程序上所有路线的基本模板的一部分,并且
- 这是 "submit" 并且特定于路线并且是子模板的一部分。
我如何can/do区分这两者"post"?
在 bottle 中,我试图通过使用表单的 "name" 来挑选出 "POST" 请求 - 代码应该是什么样的?
瓶子:
@route('/pending', method=['GET', 'POST'])
def pending():
session = db_session
if (request.POST.get('name') == 'search_request'):
return "search"
if (request.POST.get('name') == 'submit_asset'):
return "submit"
session = db_session
format_id = request.forms.get('submit_asset')
print format_id
result_format_metadata = session.query(FormatMetadata).filter(FormatMetadata.id==format_id).first()
result_format_metadata.id = format_id
result_format_metadata.stateid = 4
session.commit()
redirect("/pending")
这是来自基本模板的表单,它是导航栏上的搜索功能并且在所有路线上:
<form class="navbar-form navbar-left" role="search" method="post" >
<div class="form-group">
<input name="search_request" type="text" class="form-control" placeholder="Search" >
</div>
</form>
这是特定于 /pending 路由的提交表单:
<form action="/pending" method="post"><button name="submit_asset" value="{{row.format_id}}"/>Submit</form>
好的,我找到了:
@route('/pending', method=['GET', 'POST'])
def musicvideopending():
session = db_session
if request.forms.get('search_request'):
print "search"
elif request.forms.get('submit_asset'):
print "submit"
format_id = request.forms.get('submit_asset')
print format_id
result_format_metadata = session.query(FormatMetadata).filter(FormatMetadata.id==format_id).first()
result_format_metadata.id = format_id
result_format_metadata.stateid = 4
session.commit()
redirect("/pending")
else:
print "nothing"
date = "2015-11-19 23:14:06"
result_video = session.query(FormatMetadata).filter(FormatMetadata.id).all()
result_videoID = FormatMetadata.id
result_pending = session.query(Metadata).filter(Metadata.format_id==result_videoID).filter(FormatMetadata.stateid==1).all()
result_md_done = session.query(Metadata).filter(Metadata.format_id==result_videoID).filter(FormatMetadata.stateid==3).all()
result_date_24h = session.query(Metadata).filter(Metadata.format_id==result_videoID).filter(FormatMetadata.created_date).all()
output = template("pending", rows_pending=result_pending, rows_md_done=result_md_done, rows_per_24=result_date_24h, start_date=date, end_date=date)
return output
基本我只需要将 if 语句移动到函数的顶部并使用 request.forms.get
来确定哪个形式执行 post