Skip to main content
 首页 » 编程设计

python之Flask 在 GAE 上重定向

2025年05月04日12开发

您好,我在 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)    

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

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

我收到一条消息:

image Status: 302 FOUND Content-Type: text/html; charset=utf-8 Location: http://localhost:8080/edit/agtyb3VnaC1kcmFmdHILCxIFSW1hZ2UYDQw.html Content-Length: 299

Redirecting...

Redirecting...

You should be redirected automatically to target URL: /edit/agtyb3VnaC1kcmFmdHILCxIFSW1hZ2UYDQw.html. If not click the link.

我不明白我的代码有什么问题?

请您参考如下方法:

在 Flask 框架输出其响应之前,您的代码中的某些内容正在将文本输出到响应(它看起来像是在打印“图像”)——很可能您的代码中某处有打印语句。因此,headers flask 会尝试输出 get interpreted 作为响应正文的一部分。