【问题标题】:Flask send html data back to viewFlask 将 html 数据发送回视图
【发布时间】:2017-02-27 16:17:20
【问题描述】:

我正在创建一个页面,其中包含由 jinja for 循环创建的列表。 我希望用户在该列表中选择一个项目。 我希望该选择将用户发送到该项目页面,并将所选项目发送回我的 python 代码以进行进一步处理。

在我的“home.html”页面中,我有以下内容:

{% for item in list %}
    {{ item }}
    <form method='POST'>
        <input type='submit' value='select'>
    </form>
{% endfor %}

然后在我的python视图中:

@app.route('/', methods=['GET','POST'])
def home():
    list = ['a','b','c']

    #???????????????????????????????????????????????
    selected = request.form.item

    return render_template('home.html', list=list)

【问题讨论】:

    标签: python post flask request jinja2


    【解决方案1】:

    您需要在 home() 路由中分别处理 GETPOST 方法。像这样的:

    @app.route('/', methods=['GET','POST'])
    def home():
        if request.method == 'POST':
            selected = request.form.item
            # on this line you can process the selected item, but you haven't
            # stated how you'll do that, so I don't know what to display here
            return redirect(url_for('item_page.html', item=selected))
        else:
            list = ['a','b','c']
            return render_template('home.html', list=list)
    

    显然,我还假设您有一个模板 item_page.html 用于显示用户选择的单个项目。如果没有,请替换您将在那里使用的任何模板。您还需要一个@app.route 来处理该模板。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-31
      • 1970-01-01
      • 1970-01-01
      • 2022-09-23
      • 2019-09-14
      • 2018-04-16
      • 2016-08-05
      相关资源
      最近更新 更多