Python 如何为同一个函数动态创建多个路由,并将基于唯一ID获取的数据传递给FLASK中的单个模板

Python 如何为同一个函数动态创建多个路由,并将基于唯一ID获取的数据传递给FLASK中的单个模板,python,flask,flask-sqlalchemy,Python,Flask,Flask Sqlalchemy,我是烧瓶的新手 我正在flask中创建一个电子商务站点,我想为同一功能动态创建多个路由,并将基于唯一ID获取的数据传递给flask中的单个模板 让我解释一下 我有一个DB表格,如下所示: 身份证件 类别 鼻涕虫 1. 第一类 slug1 2. 第二类 slug2 3. 第三类 slug3 4. 第四类 slug4 我想你问的是如何在路由中使用变量 @app.route('/<slug>') def product_display(slug): category = Categ

我是烧瓶的新手

我正在flask中创建一个电子商务站点,我想为同一功能动态创建多个路由,并将基于唯一ID获取的数据传递给flask中的单个模板

让我解释一下

我有一个DB表格,如下所示:

身份证件 类别 鼻涕虫 1. 第一类 slug1 2. 第二类 slug2 3. 第三类 slug3 4. 第四类 slug4
我想你问的是如何在路由中使用变量

@app.route('/<slug>')
def product_display(slug):
    category = Category.query.filter_by(slug=slug).first_or_404()
    products = Product.query.filter_by(category_id=category.id).all()
    return render_template('products.html', category=category, products=products
然后在
all_categories.html
中,您将“构建”指向第一条路由的URL:

<ul>
{% for category in categories %}
    <li><a href="{{ url_for('product_display', slug=category.slug) }}">{{ category.slug }} (or title...)</li>
{% endfor %}
</ul>
    {categories%%中的类别为%s}
  • {{category.slug}}(或标题…)
  • {%endfor%}

所以这两条路径一起工作,从数据库中获取“循环数据”

我想你是在问如何在路径中使用变量

@app.route('/<slug>')
def product_display(slug):
    category = Category.query.filter_by(slug=slug).first_or_404()
    products = Product.query.filter_by(category_id=category.id).all()
    return render_template('products.html', category=category, products=products
然后在
all_categories.html
中,您将“构建”指向第一条路由的URL:

<ul>
{% for category in categories %}
    <li><a href="{{ url_for('product_display', slug=category.slug) }}">{{ category.slug }} (or title...)</li>
{% endfor %}
</ul>
    {categories%%中的类别为%s}
  • {{category.slug}}(或标题…)
  • {%endfor%}

因此,这两个路由一起工作,从数据库获取“循环数据”

是的,我想在路由中使用变量,但该变量应该来自于从DB获取的循环数据,如我的问题中所述,请让我知道是否有问题,我想我的更新可能会解决您的问题。如果不是,你能从一个不那么专业的角度解释一下你想做什么吗?(例如,“我正试图向用户显示一个类别列表,他们可以点击以查看所有相关产品”)我想绕过decorator、app.route,并传入相应的slug或id,这样我就可以获取与传入的category id或slug相关联的产品,但到目前为止,您的第一个答案为我提供了解决方法,非常感谢,我想在路由中使用变量,但该变量应该来自于从DB获取的数据的for循环,正如我在问题中提到的,请让我知道是否不清楚,我想我的更新可能会解决您试图做的事情。如果不是,你能从一个不那么专业的角度解释一下你想做什么吗?(例如,“我正试图向用户显示一个类别列表,他们可以点击以查看所有相关产品”)我想绕过decorator、app.route,并传入相应的slug或id,这样我就可以获取与传入的category id或slug相关联的产品,但到目前为止,您的第一个答案为我提供了解决方法,多谢各位