Отображение изображения на HTML-странице с помощью колбы - PullRequest
0 голосов
/ 13 декабря 2018

Я пытаюсь отобразить изображение из списка изображений JPEG на странице HTML.Я попытался использовать следующий код на колбе:

from flask import Flask, render_template, request
from Daily_runs import func,func_2
import os
import glob


app = Flask(__name__)

@app.route('/')
def index():
    return render_template('Input.html')

@app.route('/hello', methods=['POST'])
def hello():
    path = request.form['path']
    func(path)
    func_2()
    images = glob.glob(os.path.join(path,'*.jpg'))
    image = os.path.abspath(images[0])


    return render_template('Image.html', user_image = image)

Код шаблона HTML:

<!DOCTYPE html>
<html>
<head>
    <title>Index</title>
</head>
<body>
    <img src={{user_image)}} alt="User Image">
</body>
</html>

Изображения не отображаются, вместо них отображается только альтернативный текст.Пробовал различные другие методы, перечисленные в этом форуме, но не удалось.Кто-нибудь может помочь с этим?

Ответы [ 3 ]

0 голосов
/ 13 декабря 2018

Чтобы отображать изображения, хранящиеся локально с помощью flask и render_template, необходимо сохранить нужные изображения в папке static/images в родительском каталоге вашего приложения:

your_project_folder
|  - static/
      - images/
          - your_imagename.jpg
|  -templates
     - Image.html

   -main_app_file.py

Сейчас, в вашем маршруте:

import os
@app.route('/hello', methods=['POST'])
def hello():
   path = request.form['path']
   func(path)
   func_2()
   image = [i for i in os.listdir('static/images') if i.endswith('.jpg')][0]
   return render_template('Image.html', user_image = image)

В Image.html:

<img src='/static/images/{{user_image}}' alt="User Image">
0 голосов
/ 16 декабря 2018
I tried as you said..Still the same problem:

from flask import Flask, render_template, request
from Daily_runs import func,func_2
import os
import glob


app = Flask(__name__)
APP_ROOT = os.path.dirname(os.path.abspath(__file__))

@app.route('/')
def index():
    return render_template('Input.html')


@app.route('/hello', methods=['POST'])
def hello():
    target = os.path.join(APP_ROOT,'static/images')
    path = request.form[r'path']
    func(path)
    func_2()
    image = [i for i in os.listdir(target) if i.endswith(".jpg")][0]
    return render_template('Image.html', user_image = image)
0 голосов
/ 13 декабря 2018

Вы пытались поместить код Jinja в кавычки в html-файле?

т.е.:

<img src="{{  user_image  }}" alt="User Image">

Кроме того, здесь может быть просто опечатка, но есть дополнительная ") "в теге изображения (удалено выше), который может быть причиной вашей проблемы.

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