picture_path ='http://localhost:5001/static/picture/11.png' send_file(picture_path, mimetype='image/'+picture_type )报错 要怎么改
时间: 2023-12-31 16:07:07 浏览: 108
可能的错误原因是 `send_file` 函数中的 `picture_type` 变量未定义。你可以尝试使用文件的后缀名来代替 `picture_type`,如下所示:
```python
import os
from flask import Flask, send_file
app = Flask(__name__)
@app.route('/picture')
def get_picture():
picture_path = 'static/picture/11.png'
picture_type = os.path.splitext(picture_path)[1][1:] # 获取文件后缀名
return send_file(picture_path, mimetype='image/{}'.format(picture_type))
if __name__ == '__main__':
app.run(debug=True)
```
在这个例子中,我们使用 `os.path.splitext` 函数来获取文件的后缀名,然后将其作为 MIME 类型的一部分使用。另外,我们假设图片文件存储在 `static/picture` 目录下。
相关问题
‘http://localhost:5001/static/picture/11.png’ 我只要’static/picture/11.png‘ 用python怎么写
你可以使用 Python 的字符串切片(slice)来获取相对路径(即去掉域名和端口号的路径)。具体来说,可以使用以下代码:
```python
url = 'http://localhost:5001/static/picture/11.png'
relative_path = url.split('static/')[1]
print(relative_path) # 输出:picture/11.png
```
在这个例子中,我们首先使用 `split` 函数将 URL 字符串分割成两部分,即域名和相对路径。然后,我们从相对路径中取出了 `static/` 后面的部分,得到了最终的相对路径。你可以将 `relative_path` 变量放入 `send_file` 函数中,如下所示:
```python
from flask import Flask, send_file
app = Flask(__name__)
@app.route('/picture')
def get_picture():
url = 'http://localhost:5001/static/picture/11.png'
relative_path = url.split('static/')[1]
return send_file(relative_path, mimetype='image/png')
if __name__ == '__main__':
app.run(debug=True)
```
在这个例子中,我们假设图片文件的后缀名为 PNG,因此 MIME 类型为 `'image/png'`。
# 获取个人图片 @app.route('/getpicture', methods=['POST']) def getpicture(): picture =None picture_path = app.config['userInfo']['picture'] # 返回图片 return 已知图片的路径picture_path,怎么返回该路径下的图片
可以使用 Flask 中的 send_file 函数来返回该路径下的图片。具体实现如下:
```python
from flask import send_file
@app.route('/getpicture', methods=['POST'])
def getpicture():
picture_path = app.config['userInfo']['picture']
# 返回图片
return send_file(picture_path, mimetype='image/jpeg')
```
这样,当客户端请求该接口时,会直接返回指定路径下的图片。其中,mimetype 参数指定了返回的文件类型为 jpeg 格式的图片。
阅读全文