【发布时间】:2021-07-02 15:16:03
【问题描述】:
简单明了,我的目标是让用户输入他们的姓名,然后从文件输入中选择一个图像。在我上一个问题的帮助下,我能够将名称转移到下一页,但无法显示选定的图像。
现在,填写时会提供名称和图像文件名。希望得到图片文件来实际显示图片。
这是我当前的代码:
主页.html
{% extends 'base.html' %}
{% block head %}
<title>Home Page</title>
{% endblock %}
{% block body %}
<div class="content-container">
<form action="{{ url_for('result') }}" method="post">
<h2>Input your name:</h2>
<input type="text" class="user-input user mb-3" name="user">
<h2>Select your image:</h2>
<input type="file" accept="image/*" class="form-control-file"
id="formControlFile1" name="image">
<input class="btn btn-outline-primary" type="submit" value="Submit">
</form>
</div>
{% endblock %}
结果.html
{% extends 'base.html' %}
{% block head %}
<title>Result Page</title>
{% endblock %}
{% block body %}
<div class="content-container">
<h2>{{ name }}</h2>
<h2>{{ image }}</h2>
</div>
{% endblock %}
main.py
from flask import Flask, render_template, request, url_for, redirect
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def home():
if request.method == 'POST':
user = request.form["user"]
image = request.form["image"]
return redirect(url_for('result', name=user, image=image))
return render_template('home.html')
@app.route("/result", methods=['GET', 'POST'])
def result():
name = request.form.get('user')
image = request.form.get('image')
return render_template("result.html", name=name, image=image)
if __name__ == "__main__":
app.run()
所以,是的,希望我解释得足够简单。用户输入名称,选择图像,目标是在结果页面上显示名称和显示图像。感谢任何可以为这个卑微的灵魂提供指导的人。
【问题讨论】:
-
图像不能这样工作。您需要对其进行 base64 编码并将图像发送或保存到服务器静态位置并通过 发送
-
@Epsi95,或者将图像保存在某个私人文件夹中并通过某种路径进行代理。
-
我不太确定
proxify的含义,但是您可以保存图像并将base64 编码版本作为<img src="data:image/png;base64, {base64 string}" alt="" />发送或发送,也可以使用@ 访问烧瓶应用程序中的图像987654330@不是request.form