Вы должны создать папку stati c, а затем добавить все папки с изображением. Вы можете следовать этой структуре каталогов:
PROJECT NAME
>> static
>> 1-directory
>> 1.jpg
>> 2-directory
>> 2.jpg
>> 3-directory
>> 3.jpg
>> 4-directory
>> 4.jpg
>> templates
>> 1.html
>> 2.html
>> 3.html
>> 4.html
>> show.html
>> venv folder
>> app.py
Вы можете использовать этот код для app.py :
import flask
app = flask.Flask(__name__)
@app.route('/docs/show/<string:i>', methods=['GET'])
def show(i):
with open('templates/' + str(i) + '.html', 'r') as f:
content = f.read()
return flask.render_template('show.html', content = content)
if __name__=='__main__':
app.run('0.0.0.0',port=<your_port_name>)
Вы можете сохранить 1. html как показано ниже:
<h1>Hello</h1>
<img src="/static/1-directory/1.jpg" />
Вы можете сохранить 2. html, как показано ниже:
<h1>Hello</h1>
<img src="/static/2-directory/2.jpg" />
Вы можете сохранить 3. html как показано ниже:
<h1>Hello</h1>
<img src="/static/3-directory/3.jpg" />
Вы можете сохранить 4. html, как показано ниже:
<h1>Hello</h1>
<img src="/static/4-directory/4.jpg" />
И , вы можете отобразить свой код в шоу. html (так же, как вы это показали):
<html>
<body>{{content | safe}}</body>
</html>
РЕДАКТИРОВАТЬ (согласно вашим комментариям):
Я создал файловую структуру следующим образом в соответствии с вашими комментариями:
PROJECT NAME
>> templates
>> 1-directory
>> 1.jpg
>> 2-directory
>> 2.jpg
>> 3-directory
>> 3.jpg
>> 4-directory
>> 4.jpg
>> 1.html
>> 2.html
>> 3.html
>> 4.html
>> show.html
>> venv folder
>> app.py
Вы можете кодировать app.py следующим образом:
@app.route('/docs/show/<string:i>', methods=['GET'])
def show(i):
internal_html = flask.render_template(str(i)+'.html', file_name = str(i)+'-directory/'+str(i)+'.jpg')
return flask.render_template('show.html', content = internal_html)
@app.route('/serve_file/<path:filename>')
def serve_file(filename):
return flask.send_from_directory('templates/', filename)
Все ваши HTML файлы будут такими, как показано ниже:
<h1>Hello</h1>
<img src="{{ url_for('serve_file', filename=file_name) }}" />
Кроме того, ваше шоу. html будет такой же, как приведенный выше код. Здесь мы используем этот send_from_directory , потому что flask не служит кроме папки / stati c. Таким образом, для внешнего использования папки мы должны использовать send_from_directory .