Python Flask vs Web.py:以不同方式处理提供的文件
从web.py提供的.tar.bz2文件从浏览器保存为.tar.bz2。但是,当由flask提供服务时,.bz2扩展名将被删除,但针对该文件运行的文件仍然将其标识为.bz2文件 我在Python2.7上运行web.py,在Python3.7上运行flask。 我手动将相同的.tar.bz2文件放在一个目录中,并从网页提供服务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:
=======
<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”解决了这个问题。我对烧瓶不熟悉。边学习边学习。下次输入代码和完整的错误消息。