【问题标题】:handling multiple posts on single route with bottle用瓶子在单条路线上处理多个帖子
【发布时间】:2015-12-03 02:29:08
【问题描述】:

我有两种表格需要在同一条路线上“发布”。

  1. 是“搜索”,它是应用程序上所有路由的基本模板的一部分,并且
  2. 用于“提交”并且特定于路线并且是子模板的一部分。

我如何/如何区分这两个“帖子”?

在瓶中,我试图通过使用表单的“名称”来挑选“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>

【问题讨论】:

    标签: python post bottle


    【解决方案1】:

    好的,我找到了:

    @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 来确定发布的表单是什么

    【讨论】:

      猜你喜欢
      • 2013-05-23
      • 2017-05-08
      • 2011-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-27
      • 1970-01-01
      相关资源
      最近更新 更多