表单提交后如何获取新对象?

阿罗哈玛哈(Alohamaloha)

我正在尝试flask nad,有一个简单的任务可以提交表单。页面显示一张图片和一张表单,如果正确提交了表单,则应该更改图片,否则请更改-相同。我无法理解在表单提交后如何仅在页面上显示一个对象并获得另一个对象的机制。试图在图像列表上使用迭代器的是文件夹“静态”,但是我的实现无法正常工作。请提供给我一个反馈,以严格的方式做到这一点?

现在,我有一个简单的视图:

@app.route("/", methods=["GET", "POST"])
def start_view():
    picture = None
    form = InputForm(csrf_enabled=False)
    if form.validate_on_submit():
        picture = form.picture.data
        form.picture.data = ""

    return render_template('04-2.html', form=form, picture=picture)

class InputForm(Form):
    picture = StringField('What is on a picture?', validators[DataRequired()])
    submit = SubmitField('Submit')

和一个简单的模板:

<body>
    <form method="POST">
    {{ form.picture.label }} {{ form.picture }}
    {{ form.submit() }}
    </form>
    {% if form.errors %}
        <span style="color: red">{{ form.error }}</span>
    {% endif %}
</body>

谢谢!

密码

您的表格不包含任何图片。它有一个StringField和一个SubmitField如果要查看任何图像,则需要<img>在HTML中有一个标记,指向服务器中图像的位置,视图应如下所示:

from Flask import session
# in order to use sessions you have to use a secret key for your app
app.secret_key = 'some secret key'
@app.route("/", methods=["GET", "POST"])
def start_view():
    img_list = ['filename1', 'filename2', 'filename3']

    # if this is not the first form submission
    if session.has_key('current'):
        # if we reach the end of the list show the first image again
        if int(session['current']) == len(img_list) - 1:
            session['current'] = 0
        # move to next image
        else:
            session['current'] = int(session['current']) + 1
    else:
        session['current'] = 0

    picture = 'first_image_filename' # this should be the img on load
    form = InputForm(csrf_enabled=False)
    if form.validate_on_submit():
        picture = img_list[int(session['current'])] # the filename of the next image
        form.picture.data = ""

    return render_template('04-2.html', form=form, picture=picture)

因此模板应如下所示:

<body>
    <form method="POST">
        {{ form.picture.label }} {{ form.picture }}
        <img src="{{url_for('static', filename='img/' + picture)}}"
        {{ form.submit() }}
    </form>
{% if form.errors %}
    <span style="color: red">{{ form.error }}</span>
{% endif %}
</body>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

表单数据未与Spring Controller注释绑定,提交后获取新对象

来自分类Dev

在jsf中提交表单后如何获取输入值?

来自分类Dev

在magento中提交表单后如何获取帖子数据变量

来自分类Dev

asp.net提交表单后如何获取post数据

来自分类Dev

如何获取格式以应用于新表单提交?

来自分类Dev

如何获取格式以应用于新表单提交?

来自分类Dev

如何获取提交表单的文件?

来自分类Dev

如何获取提交表单的文件?

来自分类Dev

创建新对象后如何获取对象的默认值?

来自分类Dev

在 Joomla 中提交后获取表单域

来自分类Dev

Django在提交表单后获取(AttributeError:'str'对象没有属性'get')

来自分类Dev

在Apps脚本中提交表单后如何重定向到新的html页面

来自分类Dev

如何在 PHP 上提交表单后重定向到新的详细数据

来自分类Dev

在Firebase中调用push()后如何获取新对象的autoID?

来自分类Dev

在Firebase中调用push()后如何获取新对象的autoID?

来自分类Dev

提交表单后如何调用方法?

来自分类Dev

在angularjs验证后如何提交表单?

来自分类Dev

单击提交后如何使表单标签消失

来自分类Dev

提交表单后如何清除“ comboBox”的内容

来自分类Dev

提交表单React后如何重定向

来自分类Dev

表单提交后如何执行Javascript

来自分类Dev

提交后如何清除表单输入?

来自分类Dev

PHP,提交后如何清除此表单?

来自分类Dev

使用JavaScript提交后如何隐藏表单?

来自分类Dev

在angularjs中验证后如何提交表单?

来自分类Dev

表单加载后如何自动提交按钮

来自分类Dev

提交/发布后如何阻止表单刷新

来自分类Dev

提交后如何删除表单信息

来自分类Dev

提交后如何清空表单的字段?

Related 相关文章

热门标签

归档