您必须创建静态文件夹,然后必须将所有文件夹与图像一起添加。你可以按照这个目录结构:
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" />
而且,您可以在 show.html 中显示您的代码(与您显示它的方式相同):
<html>
<body>{{content | safe}}</body>
</html>
编辑(根据您的 cmets):
我根据您的 cmets 以下列方式创建了文件结构:
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) }}" />
此外,您的 show.html 将与上述代码相同。
在这里,我们使用这个 send_from_directory,因为烧瓶不提供 /static 文件夹以外的服务。因此,对于文件夹的外部使用,我们必须使用 send_from_directory。