flask框架(9)

Flask-WTF

Flask-WTF是集成WTForms,并带有csrf令牌的安全表单和全局的csrf保护的功能
使用Flask-WTF需要配置参数SECRET_KEY
CSRF_ENABLED是为了CSRF(跨站请求伪造)保护。SECRET_KEY用来生成 加密令牌,当CSRF激活的时候,该设置会根据设置的密匙生成加密令牌

配置参数:

 app.config['SECRET_KEY'] = 'python  is good'

视图函数:

from flask import Flask, render_template, redirect, url_for, session, request, flash
 # 导入wtf扩展的表单类 
 from flask_wtf import FlaskForm
  # 导入自定义表单需要的字段
  from wtforms import SubmitField, StringField, PasswordField
   # 导入wtf扩展提供的表单验证器
  from wtforms.validators import DataRequired, EqualTo

app = Flask(__name__) 
app.config['SECRET_KEY'] = 'python is good'

# 自定义表单类,文本字段、密码字段、提交按钮
 class Login(FlaskForm): name = StringField(label='用户:', validators=[DataRequired('用户名不能为空')])
  pwd = PasswordField(label='密码', validators=[DataRequired('密码不能为空'), EqualTo('pwd1', '密码不一样')]) 
  pwd1 = PasswordField(label='确认密码', validators=[DataRequired('密码不能为空')]) submit = SubmitField('提交')

模板页面

{{ form.csrf_token() }} 
{{ form.name.label }}
 <p>{{ form.name }}</p>

{% for msg in form.name.errors %
} <p>{{ msg }}</p> 
{% endfor %} 
{{ form.pwd.label }}
 <p>{{ form.pwd }}</p>
 
{% for msg in form.pwd.errors %} 
<p>{{ msg }}</p>
 {% endfor %}
  {{ form.pwd1.label }}
   <p>{{ form.pwd1 }}</p>

{% for msg in form.pwd1.errors %} 
<p>{{ msg }}</p> 
{% endfor %}
 <p>{{ form.submit() }}</p>
  {% for x in get_flashed_messages() %} 
  {{ x }} 
  {% endfor %}

闪现
闪现的功能是基于session实现,所以我们在使用闪现的时候需要配置secret_key。

@app.route('/upload', methods=['GET', 'POST']) # 支持get、post请求 
def upload(): # 视图函数
 file = request.files.get('file') # files获取多媒体资源
  filename = file.filename 
  file.save(os.path.join(UPLOAD_FOLDER, filename)) # 保存
   flash('上传成功') # 添加闪现信息 
   return redirect(url_for('index'))

获取闪现

{#获取闪现#}
 {% for msg in get_flashed_messages() %}
  <h1>{{ msg }}</h1> 
  {% endfor %}

分类闪现:

flash('上传成功', 'success') # 添加闪现信息
{#获取闪现#}
 {% for msg in get_flashed_messages(category_filter=['success']) %}
  <h1 style="color: green">{{ msg }}</h1>
   {% endfor %}

日志

日志的几种错误 ERROR, WARN,INFO,DEBUG,TRACE

app.logger.debug('A value for debugging') 
app.logger.warning('A warning occurred (%d apples)', 42) 
app.logger.error('An error occurred')
app.logger.info(filename + '上传成功了.....')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值