gpt4 book ai didi

html - Flask - 没有正确响应 GET 请求?

转载 作者:行者123 更新时间:2023-12-02 08:40:05 25 4
gpt4 key购买 nike

我试图在页面上添加一个下载按钮,单击该按钮即可开始下载文件。使用 Flask 作为我的框架。我尝试在单击按钮并发送 GET 请求时开始下载,但没有任何反应。在我的控制台中,我刚刚得到 "127.0.0.1 - - [04/Feb/2014 00:10:57] "GET/CpFTHHpsJ/HTTP/1.1"200 -",这是相同的输出当页面加载时我得到。

我的 HTML 表单如下所示:

<form method="get" action="">
<input type="submit" value="DOWNLOAD">
</form>

我的python用于呈现下载页面并发送文件:

@app.route('/<new_folder_name>/', subdomain='f', methods=['GET'])
def uploaded_file(new_folder_name):
new_folder_path = os.path.join(app.config['FILE_FOLDER'], new_folder_name)
filename = subfolder_fetch(new_folder_path)
return render_template("download.html", filename=filename, new_folder_path=new_folder_path)
if request.method == "GET":
send_from_directory(new_folder_path, filename, as_attachment=True)

抱歉,如果这很愚蠢,我是 HTML 表单和 Web 编程的初学者。谢谢。

最佳答案

  1. 您实际上从未返回您的send_from_directory,因此文件永远不会返回给最终用户。
  2. 无论如何,您永远不会到达代码,因为您在到达测试方法之前返回了 render_template
  3. 您无法使用其中的代码区分页面加载和“下载”点击。

如何修复 #3

  • 名称添加到下载链接表单:

    <input type="submit" name="action" value="Download">

    并测试它是否存在于您的 Controller 中:

    if "action" in request.args:
    # Download
    else:
    # Show page
  • 或者,使用指向单独 Controller 的链接:

    @app.route('/<folder>/download')
    def download_file(folder):
    # etc.

    并在模板中创建一个链接并将其样式设置为按钮:

    <a href="{{ url_for('download_file', folder=folder) }}" class="download">Download Now</a>

关于html - Flask - 没有正确响应 GET 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21544512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com