用瓶子处理单条路线上的多个帖子

handling multiple posts on single route with bottle

我有两个表格需要 "post" 在同一条路线上。

  1. 是 "search",它是应用程序上所有路线的基本模板的一部分,并且
  2. 这是 "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