【问题标题】:Flask redirect to URL with variable烧瓶重定向到带有变量的 URL
【发布时间】:2016-01-29 15:45:22
【问题描述】:

我想重定向到一个 URL 并将变量“文件”传递给它,有人可以帮忙吗?这是视图:

@app.route('/api/uploads/<string:file>/', methods=['GET','COPY']) 
def download(file):
   sub = db.session.query(func.max(Content.Hits).label('max_hit')).subquery()
  contenu = db.session.query(Content).join(sub, sub.c.max_hit == Content.Hits).all()
name1 = contenu[0].name

if name1 == file:
   return redirect('http://192.168.198.134:5000/api/uploads/<string:file>', file)

else:   
    return send_from_directory(UPLOAD_FOLDER, file) 

【问题讨论】:

    标签: python redirect flask


    【解决方案1】:

    这就是url_for() function 的用途:

    from Flask import url_for
    
    redirect(url_for(download, file=file))
    

    url_for() 采用您的视图的端点名称(默认情况下是您的函数名称,此处为 download),以及用于为参数提供值的附加关键字参数。

    另请参阅快速入门文档中的URL Building section

    【讨论】:

    • 抱歉,URL 指向另一个运行在另一台机器上的烧瓶服务器。我认为如果我重定向到同一服务器上的页面,可以使用 url_for
    • @Rzozi:然后使用url_for() 构建路径,然后对该 URL 进行后处理以设置服务器名称。
    • @MartijnPerters:我可以这样做吗:return redirect('192.168.198.134:5000 %s' % url_for(download,file=file)
    • 您必须小心正确地转义路径元素。 url_for() 已经为您处理好了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-18
    • 1970-01-01
    相关资源
    最近更新 更多