不以物喜不以己悲
今天学习的目标是flask的表单处理
Flask-WTF扩展可以对web表单进行处理
1.首先是安装
pip install falsk-wtf
2.表单
flask-wtf能保护表单免受跨站请求CSRF攻击,设置密钥生成令牌对其进行保护
代码:
from flask import request
from flask import Flask
app = Flask(__name__)
app.config['secret_key'] = 'hard to guess string'
@app.route('/')
def index():
user_agent = request.headers.get('User-Agent')
return '<p>your browser is %s</p>' % user_agent
if __name__ == '__main__':
app.run(debug=True)
定义表单类
from flask import Flask
from flask_wtf import Form
from wtforms import StringField, SubmitField, validators
from wtforms.validators import Required
# from wtforms import *
app = Flask(__name__)
app.config['secret_key'] = 'hard to guess string'
class NameForm(Form):
name = StringField('what is your name?', validators)
submit = SubmitField('Submit')
@app.route('/')
def index():
user_agent = request.headers.get('User-Agent')
return '<p>your browser is %s</p>' % user_agent
if __name__ == '__main__':
app.run(debug=True)
改变根目录代码
@app.route('/')
def index():
user_agent = request.headers.get('User-Agent')
name = None
form = NameForm()
if form.validate_on_submit():
name = form.name.data
form.name.data = ''
return render_template('index.html', form=form, name=name)
3.设置重定向和会话
from flask import Flask, render_template, session, redirect, url_for
@app.route('/', methods=['get', 'post'])
def index():
form = NameForm()
if form.validate_on_submit():
session['name'] = form.name.data
return redirect(url_for('index'))
app.run(debug=True)
最近代码还有许多问题,目前是怀疑这个python版本的,原版本python是python的2.7版本的,应该先尝试一下2的版本