zoukankan      html  css  js  c++  java
  • flask表单操作

    flask表单操作
    说明:
    为了能够处理 web 表单,我们将使用 Flask-WTF ,该扩展封装了 WTForms 并且恰当地集成进 Flask 中。
    在 Flask-WTF 中,表单是表示成对象,Form 类的子类。一个表单子类简单地把表单的域定义成类的变量。

    1.配置:
        * 许多 Flask 扩展需要大量的配置,因此我们将要在 microblog 文件夹的根目录下创建一个配置文件以至于容易被编辑。这就是我们将要开始的(文件 config.py):
            '''
                CSRF_ENABLED = True
                SECRET_KEY = 'you-will-never-guess'
            '''
        * 配置说明:
            十分简单吧,我们的 Flaks-WTF 扩展只需要两个配置。 CSRF_ENABLED 配置是为了激活 跨站点请求伪造 保护。在大多数情况下,你需要激活该配置使得你的应用程序更安全些。
            SECRET_KEY 配置仅仅当 CSRF 激活的时候才需要,它是用来建立一个加密的令牌,用于验证一个表单。当你编写自己的应用程序的时候,请务必设置很难被猜测到密钥。

    2.导入Form模块和相关模块
        * '''
            from flask_wtf import Form
            from wtforms import StringField,BooleanField
            from wtforms.validators import DataRequired

          '''
              DataRequired:验证器只是简单地检查相应域提交的数据是否是空
        * 创建表单
            '''
                class LoginForm(Form):
                    openid = StringField("openid",validators=[DataRequired()])
                       remember_me = BooleanField("remember_me",default=False)
            '''

    3.创建表单模板
        * 代码
            '''
            {% extends "base.html" %}
            {% block context %}
            <h1>注 册</h1>
            <form action=""method="post"name="login">
                {{ form.hidden_tag() }}
                <p>
                    请输入你的openid:<br>
                    {{ form.openid(size=40) }}<br>
                </p>
                <p>{{ form.remeber_me }}记住</p>
                <p><input type="submit" value="注 册"></p>
            </form>
            {% endblock %}
            '''
            说明:form.hidden_tag() 模板参数将被替换为一个隐藏字段,用来是实现在配置中激活的 CSRF 保护

    4.接受表单数据
        * Flask-WTF 使得工作变得简单的另外一点就是处理提交的数据。这里是我们登录视图函数更新的版本,它验证并且存储表单数据 (文件 app/views.py):
        * 代码
            '''
            @app.route('/login',methods=['GET','POST'])
            def login():
                form = LoginForm()
                if form.validate_on_submit():
                flash("Login requested for openid=" + form.openid.data + "remember_me=" + str(form.remember_me.data))
                return render_template('/')
            return render_template("login.html",title='登陆',form=form)
            '''
            说明:validate_on_submit 方法做了所有表单处理工作。当表单正在展示给用户的时候调用它,它会返回 False.
                  flash 函数是一种快速的方式下呈现给用户的页面上显示一个消息

  • 相关阅读:
    描述一下Spring Bean的生命周期
    BeanFactory和ApplicationContext有什么区别
    谈谈你对AOP的理解
    谈谈对IOC的理解
    线程池中线程复用原理
    线程池中阻塞队列的最用?为什么是先添加队列而不是先创建最大线程
    为什么使用线程池?解释下线程池参数
    去噪声论文阅读
    怎么使用有三AI完成系统性学习
    JavaCnn项目注解
  • 原文地址:https://www.cnblogs.com/jayson-0425/p/10191207.html
Copyright © 2011-2022 走看看