首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Flask

视图函数 POST 方法重新创建 FlaskForm 内容不清空

  •  
  •   sudo987 · 2016-10-12 12:08:41 +08:00 · 1742 次点击
    这是一个创建于 1154 天前的主题,其中的信息可能已经有所发展或是发生改变。
    @app.route('/', methods=['GET', 'POST'])
    def index():
        form = NameForm()
        if form.validate_on_submit():
            old_name = session.get('name')
            if old_name != form.name.data:
                flash("It seems you've changed your name.")
            session['name'] = form.name.data
            form.name.data = ''
            return redirect(url_for('index'))
        return render_template('index.html', name = session.get('name'), current_time = datetime.utcnow(), \
                               form = form)
    

    上述代码中 form.name.data 取得 name 数据,但是在这之前已经运行了 form = NameForm(), 我的理解是已经重新创建了一个新的 NameForm,此处的 name 应该是 None, 但事实上 name 的值就是 POST 方法提交的值, 希望大神解惑.

    2 回复  |  直到 2016-10-12 12:20:13 +08:00
        1
    Kilerd   2016-10-12 12:14:06 +08:00
    form = NameForm(request.form)
        2
    sudo987   2016-10-12 12:20:13 +08:00
    @Kilerd 多谢, 刚才也看到了 FlaskForm 的介绍, If ``formdata`` is not specified, this will use
    :attr:`flask.request.form` and
    | :attr:`flask.request.files`. Explicitly pass ``formdata=None`` to prevent this.默认值就是 request.form.
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2863 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 28ms · UTC 11:41 · PVG 19:41 · LAX 03:41 · JFK 06:41
    ♥ Do have faith in what you're doing.