Html 烧瓶-未正确响应GET请求?

Html 烧瓶-未正确响应GET请求?,html,forms,flask,Html,Forms,Flask,我试图在一个页面上有一个下载按钮,当它被点击时,它将开始下载一个文件。使用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" va

我试图在一个页面上有一个下载按钮,当它被点击时,它将开始下载一个文件。使用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>

Mypython用于呈现下载页面和发送文件:

@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)
@app.route('//',子域='f',方法=['GET']))
def上传的文件(新文件夹名称):
新建文件夹路径=os.path.join(app.config['FILE\u folder'],新建文件夹名称)
filename=子文件夹\u获取(新文件夹\u路径)
返回渲染模板(“download.html”,文件名=文件名,新文件夹路径=新文件夹路径)
如果request.method==“GET”:
从\u目录发送\u(新的\u文件夹\u路径,文件名,如\u attachment=True)
对不起,如果这是愚蠢的,我是一个初学者与HTML表单和网页编程。多谢各位

  • 实际上,您从未
    return
    您的
    send\u from\u directory
    ,因此该文件将永远不会返回给最终用户
  • 无论如何,您永远都无法访问代码,因为在使用测试方法之前,您
    返回render\u template
  • 您无法用代码区分页面加载和“下载”点击
  • 如何修复#3
    • 名称
      添加到下载链接表单:

      <input type="submit" name="action" value="Download">
      
    • 或者,使用指向单独控制器的链接:

      if "action" in request.args:
          # Download
      else:
          # Show page
      
      @app.route('/<folder>/download')
      def download_file(folder):
          # etc.
      
      @app.route(“//下载”)
      def下载文件(文件夹):
      #等等。
      
      在模板中创建链接并将其设置为按钮样式:

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

    在调用
    send\u from\u directory
    之前,看起来您正在渲染并返回
    download.html