首页 > 解决方案 > 如何过滤Flask中的数据?

问题描述

我正在 Flask 中构建广告服务,并希望让用户按类别过滤广告,但不知道如何在 python 和 Flask 中做到这一点。

例如,我们有以下广告形式:

class AdvertForm(FlaskForm):
    title = StringField('Title', validators=[DataRequired()])
    content = TextAreaField('Content', validators=[DataRequired()])
    category = SelectField('Caterogry', validators=[DataRequired()], choices=[('car','Car'), ('work','Work'), ('sport','Sport')])
    submit = SubmitField('Submit')

并遵循html:

  <div class="categories">
    <div class="category-item">
      <a href="">Cars</a>
    </div>
    <div class="category-item">
      <a href="">Work</a>
    </div>
    <div class="category-item">
      <a href="">Sport</a>
    </div>
  </div>

当用户点击 HTML 中的Cars项目时,我想创建子页面127.0.0.1:5000/cars并仅显示具有汽车类别的广告

标签: pythonflaskfilter

解决方案


您可以捕获用户选择的类别并将其发送回您的 Python 函数。然后,根据选择,将用户引导到适当的子页面。

@app.route('/mainpage', methods=['GET','POST'])
def mainpage():
    form = AdvertForm()
    if form.validate_on_submit():
        selectedCategory = request.form['category']
        nextPage = selectedCategory + ".html"
        return render_template(nextPage)
    return render_template('mainpage.html', form=form)

在上面的示例中,如果用户选择 Car 并单击 Submit,他们将被路由到http://localhost:5000/car.html. 如果他们选择工作,他们将被路由到http://localhost:5000/work.html。我相信你明白了。


推荐阅读