烧瓶请求位于错误的网址?

时间:2016-05-02 17:29:17

标签: python flask request url-for

在我的app.py中,url部分是这样的:

    @app.route('/admin', methods=['GET','POST'])
def tiger_admin():
    ...
    if request.method == 'POST':
        #print 'POST'
        ...
        return render_template('admin.html', blogs=blogs)
    else:
        pass
    return render_template('admin.html', blogs=blogs)
另一个:

@app.route('/edit/<blogid>', methods=['GET','POST'])
def editblog(blogid):
    print 'processing...'
    ...
    if request.method == 'POST':
        print 'posting...'
        ...
        return render_template('edit_status.html',status)
    return render_template('edit.html', blog=blog)

现在模板'admin.html'就像这样:

<a href="{{ url_for('editblog',blogid=blog.id) }}">change{{blog.id}}</a>

然后,如果我们点击<a>,它将返回'edit.html',如下所示:

...    
<dd><input type="submit" value="update">
...

但是当我点击“更新”按钮时,刻录机会在'tiger_admin'中使用'POST'处理它,这应该是'editblog' 我怎么能找到问题所在?

1 个答案:

答案 0 :(得分:0)

您的<input>元素位于某个<form>元素内。 <{1}}元素的action属性不正确。

  

我怎样才能找到问题所在?

您可以先查看浏览器中的<form>元素。从那里,在模板中查找相应的<form>元素。