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 函数是一种快速的方式下呈现给用户的页面上显示一个消息

  • 相关阅读:
    [转载]SELinux 环境下网络服务设置,配置 Apache 、Samba、NFS
    [转载]SELinux安全系统基础
    Linux NFS服务器的安装与配置
    将可执行程序设为linux服务启动
    不关闭selinux下配置php+httpd访问KingbaseES
    [转载]SELinux安全系统基础
    解决samba和SELINUX 冲突
    [转载]在线文本编辑器的基本实现原理
    [转载]使用postgresql安装wordpress
    [转载]php连接postgreSQL数据库及其操作(php5,postgreSQL9)
  • 原文地址:https://www.cnblogs.com/jayson-0425/p/10191207.html
Copyright © 2011-2022 走看看