Я работаю над REST API с использованием Flask, в котором мне нужно получить изображение из URL-адреса, предоставленного пользователем в параметрах URL.
Вот что я пробовал:
import urllib
from io import BytesIO
from PIL import Image
from flask import Flask
app = Flask(__name__)
@app.route('/<path:image_url>')
def build_mask_rmv_bg(image_url):
f = urllib.request.urlopen(image_url)
jpeg_str = f.read()
original_im = Image.open(BytesIO(jpeg_str))
return original_im
if __name__ == '__main__':
app.run()
А, вот мой запрос:
http://127.0.0.1:5000/http://raw.githubusercontent.com/tensorflow/models/master/research/deeplab/g3doc/img/image2.jpg
Я перепробовал оба пути HTTP и HTTTP в параметре URL. Но он возвращает следующую ошибку:
urllib.error.URLError: <urlopen error [SSL:CERTIFICATE_VERIFY_FAILED] certificate
verify failed (_ssl.c:749)>
127.0.0.1 - - [01/Sep/2018 09:37:51] "GET /http://raw.githubusercontent.com/tensorflow/models/master/research/deeplab/g3doc/img/image2.jpg HTTP/1.1" 500 -
Обновление:
Я обновил его с помощью wget
, теперь он не возвращает никаких ошибок, но файл все еще не загружает изображение.
Вот обновленный код:
from flask import Flask
import wget
app = Flask(__name__)
@app.route('/<path:image_url>')
def build_mask_rmv_bg(image_url):
url = str(image_url)
# download the file contents in binary format
print(url)
wget.download(url, "img/image1.jpg")
return 'something happened'
if __name__ == '__main__':
app.run()
Что здесь не так?
Помогите мне, пожалуйста!
Заранее спасибо!