烧瓶在GAE上重定向

时间:2011-03-27 20:17:54

标签: python google-app-engine redirect flask

您好我在Google应用引擎上使用Flask(http://flask.pocoo.org/)。我有以下代码

@app.route("/edit.html", methods=['GET', 'POST'])
def create():
if request.method == 'GET':
    form = ImageForm()  
    return render_template('edit.html', title=u'Add', form=form)

if request.method == 'POST':
    image = Image()        
    form = ImageForm(request.form, image)
    if form.validate() and request.files['image']:
        form.populate_obj(image)
        if request.files['image']:
            image.file = request.files['image'].read()
        image.put()
        return redirect(url_for("edit", id=image.key()))
    else:
        return render_template('edit.html', title=u'Add', form=form)

@app.route("/edit/<id>.html", methods=['GET', 'POST'])
def edit(id):
    image = Image.get(id) 
    form  = ImageForm(request.form, image)
    return render_template('edit.html', title=u'Edit', form=form)   

但浏览器不会将我重定向到

中的给定网址
return redirect(url_for("edit", id=image.key()))

我收到一条消息:

  

image状态:302 FOUND内容类型:   为text / html; charset = utf-8位置:   http://localhost:8080/edit/agtyb3VnaC1kcmFmdHILCxIFSW1hZ2UYDQw.html   内容长度:299

     

  重定向...   

重定向...

你应该   被自动重定向到目标   网址:/edit/agtyb3VnaC1kcmFmdHILCxIFSW1hZ2UYDQw.html。   如果没有,请点击链接。

我无法理解我的代码有什么问题?

1 个答案:

答案 0 :(得分:7)

代码中的某些内容是在Flask框架输出响应之前将文本输出到响应(它看起来就像打印'image'一样) - 很可能你的代码中有一个print语句。结果,标题瓶尝试输出被解释为响应主体的一部分。