python学习笔记(三)-表单处理
来源:互联网 发布:lbp算法 opencv实现 编辑:程序博客网 时间:2024/06/06 01:30
表单类
默认情况下,Flask-WTF能保护所有表单免受跨站请求伪造攻击(CSRF)
app = Flask(__name__)# 强制性必须填写secret_keyapp.config['SECRET_KEY'] = 'hard to guess string'
定义表单
from flask_wtf import Formfrom wtforms import StringField, SubmitFieldfrom wtforms.validators import Requiredclass NameForm(Form): name = StringField('What is your name', validators=[DataRequired()]) submit = SubmitField('Submit')
Form基类由Flask-WTF扩展定义,所以从flask_wtf中导入,字段和验证函数却可以直接从WTForms中导入
NameForm表单中有一个名为name的文本段和一个名为submit的提交按钮。StringField类表示属性为type=’text’的input元素。SubmitField类表示属性为type=”submit”的input元素。
效果为
WTForms支持的HTML标准如下所示
把表单渲染成html template/index.html
{% extends "base.html" %}{% import "bootstrap/wtf.html" as wtf %}{% block title %} Flasky {% endblock %}{% block page_content %} <div class="page-hearder"> <h1>Hello,{% if name %}{{ name }}{% else %}Stranger{% endif %}</h1> </div> {{ wtf.quick_form(form) }}{% endblock %}
视图函数中处理表单
@app.route('/', methods=['GET', 'POST'])def index(): form = NameForm() if form.validate_on_submit(): old_name = session.get('name') if old_name is not None and old_name != form.name.data: flash('Looks like you have changed your name!') session['name'] = form.name.data return redirect(url_for('index')) return render_template('index.html', form=form, name=session.get('name'))
加入Flash消息,修改base.html,加入get_flashed_messages()消息处理
{% block content %}<div class="container"> {% for message in get_flashed_messages() %} <div class="alert alert-warning"> <button type="button" class="close" data-dismiss="alert">×</button> {{ message }} </div> {% endfor %} {% block page_content %}{% endblock %}</div>{% endblock %}
最终效果如图所示
本文参考《Flask Web开发-基于Python的Web应用开发实战》
0 0
- python学习笔记(三)-表单处理
- 《Python自然语言处理》学习笔记(三)
- Python的学习笔记(三)(文件处理)
- python自然语言处理学习笔记三
- Bootstrap学习笔记(三)表单
- SpringMVC学习笔记(3)-----表单处理
- 用Python写网络爬虫系列(三)表单处理
- PHP 学习笔记(二):表单:表单处理,表单验证,表单实例
- python学习笔记(三)
- Python学习笔记(三)
- python学习笔记(三)
- python学习笔记:(三)
- Python学习笔记(三)
- python学习笔记(三)
- Python学习笔记(三)
- python 学习笔记(三)
- python学习笔记(三)
- Python学习笔记(三)
- 2016年12月19日学习总结----C语言程序优化
- 数据结构之单链表的简单操作
- CH9,P159,闰年检测
- Codeforces Round #386 (Div. 2) C
- 贪心算法_作业调度问题
- python学习笔记(三)-表单处理
- Android 画布使用之电子签名
- Mac OS sierra 安装opencv2经验总结,适用于独立安装python环境的用户
- Android开发——断点续传原理以及实现
- 如何利用SOM网络进行柴油机故障诊断
- QT 之QTreeWidget实现好友列表
- 进程与线程区别
- java几种常用设计模式简单示例
- 1613-3-傅溥衍 总结《2016年12月19日》【连续第八十天总结】