Python 将img路径从客户端传递到服务器

Python 将img路径从客户端传递到服务器,python,html,flask,Python,Html,Flask,我是web开发新手,尤其是Flask和python。我正在尝试创建一个网站,在这里你可以浏览图片,一旦你点击一个,这个图片就会显示在另一个名为image.html的页面上。我的问题是,我不知道如何传递imgsrc,然后在服务器端获取它,并将其传递回呈现模板 from flask import Flask, render_template import os app = Flask(__name__) @app.route('/') def index(): # Alternative

我是web开发新手,尤其是Flask和python。我正在尝试创建一个网站,在这里你可以浏览图片,一旦你点击一个,这个图片就会显示在另一个名为image.html的页面上。我的问题是,我不知道如何传递imgsrc,然后在服务器端获取它,并将其传递回呈现模板

from flask import Flask, render_template
import os

app = Flask(__name__)

@app.route('/')
def index():
    # Alternatively use app.static_folder here!
    files = os.listdir(os.path.join(app.root_path, 'static'))
    return render_template('index.html', files=files)

@app.route('/image/<path:id>')
def image(id):
    return render_template('image.html', id=id)
(图像存储在/static文件夹下) app.py:

从flask导入flask,呈现模板,请求,响应,重定向
导入操作系统
app=烧瓶(名称)
@应用程序路径(“/”)
def index():
返回渲染模板('index.html')
@app.route('/image/',方法=['GET','POST'])
def图像(id):
#基于id获取图像?
返回渲染模板('image.html',id=id)
如果“名称”=“\uuuuuuuu主要”:
app.run(debug=True)
index.html:

{% extends 'base.html' %}


{% block content %}

<a href="/image/123">
    <img src="static/123.jpg" id="123" alt="" width="400" height="400">
</a>


{% endblock %}
{%extends'base.html%}
{%block content%}
{%endblock%}
image.html:

{% extends 'base.html' %}


{% block content %}

<img src="{{ url_for('static',filename='{{ id }}') }}" id="123" alt="" width="400" height="400">

{% endblock %}
{%extends'base.html%}
{%block content%}
{%endblock%}

如果我理解了您的问题,您可以在索引模板中添加一个指向图像函数的简单链接


单凭Flask就可以实现您的既定目标,而且您已经走上了解决方案的可能道路

以下路由基于您的代码。此外,静态目录中的所有文件都列在
索引中,并传输到模板中

from flask import Flask, render_template
import os

app = Flask(__name__)

@app.route('/')
def index():
    # Alternatively use app.static_folder here!
    files = os.listdir(os.path.join(app.root_path, 'static'))
    return render_template('index.html', files=files)

@app.route('/image/<path:id>')
def image(id):
    return render_template('image.html', id=id)
由于您已经在
规范的
url\u的代码块表达式中,因此不需要任何进一步的花括号,只需将传递给模板的变量作为文件名传递即可

{% extends 'base.html' %}
{% block content %}
<img src="{{ url_for('static', filename=id) }}" width="400" height="400">
{% endblock %}
{%extends'base.html%}
{%block content%}
{%endblock%}
我建议您将所有图像放在一个子文件夹中,以便更容易将它们与其他文件分开。过程保持不变,只是路径细节有所不同


因为我认为您也有兴趣将新图像上传到服务器,所以我推荐您阅读本教程。在上面提到的页面上,您将看到我认为是框架的一部分,以及与flask相关的各种主题的有用文章。

@MaxPowers您的意思是我无法单独使用flask完成这项工作?谢谢您,这已经成功了!但我还想实现使href in索引动态化,这样它就可以通过src(或其他什么),从而可以渲染相应的图片。希望这很清楚,否则请让我知道,我会尽力解释better@Simplyrdy我已经修改了我的答案。如果您还有任何问题,我很乐意帮助您。谢谢您的帮助,我将尝试此解决方案。我确实需要阅读更多关于这个框架的内容,所以也谢谢你的教程!
{% extends 'base.html' %}
{% block content %}
<img src="{{ url_for('static', filename=id) }}" width="400" height="400">
{% endblock %}