(上接 《Flask 框架学习(一)》)
3、表单
3.1 简单表单(不接收数据)
学习的时候我还是摒弃了工程格式,还是用最简单的结构比较清晰,比较好改动
xxx
|-templates文件夹
| |-(模板文件)
|-.py文件
首先我们需要在下载一个flask-wtf,安装之后我们才能开始表单的学习。
默认情况下,Flask-WTF保护各种形式的CSRF攻击。而为了实现CSRF保护,Flask-WTF需要应用程序去配置一个加密密钥。简单地说就是加上一句话
app.config['SECRET_KEY'] = 'bendawang'#这个值一定不能被轻易猜出
后面会说明具体加在什么地方以及具体的用途。
我先列出源码:
我们的结构如下:
xxx
|-templates文件夹
| |-base.html
| |-login.html
|-forms.py文件
|-views.py
模板文件分别如下:
base.html如下:
<html>
<head>
{%if title!=Null%}
<title>{
{title}} is in</title>
{%else%}
<title>no one in</title>
{% endif %}
</head>
<body>
{% block content %}{% endblock %}
</body>
</html>
login.html如下:
{% extends "base.html"%}
{% block content %}
<form method="POST" action="/login">
{
{form.hidden_tag()}}
<h2>输入用户名</h2>{
{ form.name.label }} {
{ form.name(size=20) }}
<input type="submit" value="Go">
</form>
{% endblock %}
forms.py
from flask_wtf import Form
from wtforms import TextField
from wtforms.validators import DataRequired
class MyForm(Form):
name = TextField('name', validators=[DataRequired()])
然后views.py如下:
from flask