Python Flask vs Web.py:以不同方式处理提供的文件

Python Flask vs Web.py:以不同方式处理提供的文件,python,flask,Python,Flask,从web.py提供的.tar.bz2文件从浏览器保存为.tar.bz2。但是,当由flask提供服务时,.bz2扩展名将被删除,但针对该文件运行的文件仍然将其标识为.bz2文件 我在Python2.7上运行web.py,在Python3.7上运行flask。 我手动将相同的.tar.bz2文件放在一个目录中,并从网页提供服务 Web.py: ======= <form method="get" action="$fName"> <div id="formsubmitbutt

从web.py提供的.tar.bz2文件从浏览器保存为.tar.bz2。但是,当由flask提供服务时,.bz2扩展名将被删除,但针对该文件运行的文件仍然将其标识为.bz2文件

我在Python2.7上运行web.py,在Python3.7上运行flask。 我手动将相同的.tar.bz2文件放在一个目录中,并从网页提供服务

Web.py:
=======
<form method="get" action="$fName">
  <div id="formsubmitbutton">
     <input type="submit" name="Retrieve File" value="Retrieve File" class="button3" />
  </div>
</form>

Flask:
======
<form method="get" action="{{ fName }}">
  <div id="formsubmitbutton">
     <input type="submit" name="Retrieve File" value="Retrieve File" class="button3" />
  </div>
</form>
我希望两个设置都返回fName.tar.bz2。Chrome正在返回以下内容,我不知道原因,但怀疑与我的问题有关:

解释为文档但使用MIME类型application/x-tar传输的资源

使现代化 谢谢你的提示。但从Chrome上看,这是整个错误消息,减去了实际的文件名,因为其中包含客户信息。以下是编辑错误:

解释为文档但使用MIME类型应用程序/x-tar传输的资源:


此外,由于没有错误,所以没有从web.py或Flask进行回溯。只是当您单击retrieve file时,web.py返回扩展名为.bz2的完整文件名,Flask返回扩展名为.bz2的文件。

我试图提供的.bz2文件位于/static目录中。通过添加app.route'/static'函数,我可以将文件作为.bz2提供,而不必去掉.bz2后缀:

@main.route('/static')
def sendfile():
  for key,val in request.values.items():
    filedir = '/home/admin/Flask/httsTools'+os.path.dirname(key)
    filename = os.path.basename(key)
  return send_from_directory(filedir, filename, as_attachment=True)
我不确定这是否是推荐的方法,但它确实有效


感谢您的帮助。

显示您使用的代码再次感谢您的评论。我将来会留意他们的。我通过将app.route修改为“从\u目录发送\u”解决了这个问题。我对烧瓶不熟悉。边学习边学习。下次输入代码和完整的错误消息。