찾다

 >  Q&A  >  본문

python - Flask分页后,form表单无法传值,要怎么解决?

1、定义了一个搜索表单 form.py:

class SearchForm(Form):
    search_keyword = StringField('', validators = [DataRequired()])
    submit = SubmitField('Start Search')

2、定义路由函数 views.py:

出问题的地方: 可以通过 value = request.form.get('search_keyword')取到表单提交的值; 在分页后,点击“下一页”,这个表单就被清空了,没有search_keyword这个值了,怎么都取不到,导致分页的其它页就无法根据search_keyword显示内容了。这个要怎么解决呢?

@app.route('/search', methods=['POST', 'GET'])
def search():
    form = SearchForm():
    keyword = form.search_keyword.data

    page = request.args.get('page', 1, type=int)
    value = request.args.get('keyword')

    if form.validate_on_submit():
        pagination = Post.query.filter(Post.content.like(keyword))paginate(
            page, per_page=current_app.config['default'], error_out=False)

posts = pagination.items
return render_template('search.html', posts=posts, pagination=pagination, form=form, value=value)

3、页面 search.html

<p class="list">
    {% include 'list.html' %}
</p>
{% if pagination %}
    <p class="pagination">
    {{ macros.pagination_widget(pagination, '.search', value=value)}}
    </p>
{% endif %}
高洛峰高洛峰2889일 전359

모든 응답(3)나는 대답할 것이다

  • 迷茫

    迷茫2017-04-18 09:16:22

    게시물 대신

    을 사용해 보시겠습니까? 으아악

    두 가지 보기를 사용한 동일한 답변

    으아악

    또는 기능을 사용할 수도 있습니다

    으아악

    회신하다
    0
  • 怪我咯

    怪我咯2017-04-18 09:16:22

    g에 검색어를 넣는 것을 고려해 볼 수 있나요?

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-18 09:16:22

    사후 확인 후 경로가 리디렉션되어 명시적으로 라우팅 매개변수로 사용됩니다. 각 웹사이트의 검색 URL을 보면 이해하실 수 있습니다.
    이렇게 사후 인증을 통해 악당이 아닌 신사로부터 당신을 보호할 수 있습니다.

    회신하다
    0
  • 취소회신하다