Javascript 如何使用flask提供文件,然后使用curl下载文件
因此,我试图用flask制作一个API,然后用javascript在浏览器上显示一些图像,但在单元测试图像发送(通过flask)是否正常工作时遇到了问题。这是我现在的烧瓶代码Javascript 如何使用flask提供文件,然后使用curl下载文件,javascript,python,http,curl,flask,Javascript,Python,Http,Curl,Flask,因此,我试图用flask制作一个API,然后用javascript在浏览器上显示一些图像,但在单元测试图像发送(通过flask)是否正常工作时遇到了问题。这是我现在的烧瓶代码 @api.route("/pictures/<picture_name>") def send_picture(picture_name): """Used to send the requested picture from the pictures folder.""" return api
@api.route("/pictures/<picture_name>")
def send_picture(picture_name):
"""Used to send the requested picture from the pictures folder."""
return api.send_static_file(picture_name)
我可以在浏览器上打开相同的链接,完美地查看文件,这样我就知道send\u static\u file
功能工作正常。但是上面的curl
命令以无法打开的方式下载文件。我还有什么地方做错了吗
我还不太熟悉Python和Flask
编辑:不知何故,同样的东西在wget
上运行得非常好,所以我想知道这是否是我调用curl的方式的问题。我做错什么了吗?有人能解释一下什么东西是通过HTTP下载的吗?如中所示,get请求是否有任何特殊的头?如果不是,那么响应的格式是什么,文件是如何存储的
curl -X POST -F **file=@/home/developer/Documents/cloudish_csv/cloudish1.csv** http://127.0.0.1:5000/cloudish/daily_update?api_key=hqjjnynxtgqvkqzowdxpefdv
将您的文件路径放在curl请求的文件字段中,并使用stringio下载csv,调用上面的另一个扩展名,而不使用任何文件字段。附带示例代码
class Clouddish_forecast(Resource):
def get(self):
output = StringIO()
out = pd.read_csv("/home/developer/Downloads/vig.csv",sep=",")
out.to_csv(output, index=False)
return Response(output.getvalue(), mimetype="text/csv")
vig.csv将通过此返回语句下载当您使用
curl
方法时显示的错误是什么?另外,您不需要--request
标记,因为它默认为GET
@GIRISHRAMNANI我编辑了我的问题。对于第二个注释,我喜欢把它放在那里以明确表示:)如果使用-o
例如curl-o tank.png--request GET显式地提供文件名,它是否有效?”http://localhost:8000/pictures/tank.png“
不,我没有试过。为什么会有区别呢?不要在你的文件字段中使用相同的**作为你的身份证明
class Clouddish_forecast(Resource):
def get(self):
output = StringIO()
out = pd.read_csv("/home/developer/Downloads/vig.csv",sep=",")
out.to_csv(output, index=False)
return Response(output.getvalue(), mimetype="text/csv")