Как я могу продемонстрировать все изображения в отдельных файлах с помощью Flask? - PullRequest
0 голосов
/ 15 апреля 2019

Приветствие.Я начинающий питон, особенно в терминах Flask.Я хочу создать веб-страницу, которая позволит мне искать изображения по некоторым ключевым словам и возвращать два релевантных изображения на веб-странице.

И предположим, что ключевым словом является «Стив Джобс», и эти изображения, связанные с «Стив Джобс», будут удалены поиском Google и сохранены в файле «Стив Джобс».

Вопрос в том, что я все еще не могу отобразить изображения из моего файла и вернуть пустую страницу.Кроме того, я попробовал одно решение в StackOverflow, но оно все еще не может быть решено.Я чувствую себя настолько сбитым с толку и разочаровывающим, так трудно использовать Flask для отображения результатов на веб-странице по сравнению с использованием Jupyter.Спасибо заранее.

hello.py

@app.route("/about",methods=['GET', 'POST'])
def about():
    ...
    DIR = os.path.join(os.getcwd())
    DIR = os.path.join(DIR, query.split()[0])
    ...
    def show_index(): 
        for i,(img,Type) in enumerate(ActualImages[:2]):
            try:
                 req = urllib.request.Request(img, headers=header)
                 raw_img = urllib.request.urlopen(req).read()
                 cntr = len([i for i in os.listdir(DIR) if image_type in i]) + 1
                 print(cntr)

                 if len(Type)==0:
                     f = open(os.path.join(DIR,image_type + "_"+ str(cntr)+".jpg"),'wb')
                 else:
                      f = open(os.path.join(DIR,image_type + "_"+ str(cntr)+"."+Type),'wb')
                      f.write(raw_img)
                      f.close()

            except Exception as e:
                  print('>>> Could not load: '+img)
                  print(e)

        return f

    return render_template('about.html', f = f)

about.html

<!DOCTYPE html>
<html>
<head>
    <title>Index</title>
</head>
<body>
    <img src="{{f}}" alt="f">
</body>
</html>

1 Ответ

0 голосов
/ 22 апреля 2019

Типичный HTML-тег изображения выглядит так:

<img src="/path/image.gif" alt="My Image"/>

Как видите, атрибут src содержит URL-адрес, указывающий браузеру, где найти изображение. Он выключится и загрузит изображение оттуда. не содержит самого изображения. Ваш код пытается загрузить содержимое файла изображения в HTML, но это не сработает.

(Примечание - возможно напрямую встраивать изображения в HTML, но это довольно необычно, поэтому я не буду об этом говорить.)

Учитывая, что вам нужно поместить куда-то изображения, а также обработать их и обратиться к ним согласно ответу на Как мне ссылаться на изображения, отсутствующие в папке Static в колбе .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...