Python Flask学习_使用flask-login实现认证蓝本(二)
在 点击打开链接中,讲解了如何使用flask-login扩展实现用户认证中的与数据库互动(通过改动模型User类)、注册到app、实现回调函数的内容。
这篇主要介绍登录页面的实现 。
目标:实现如下的登录页面:
分析这个页面可以看出,应该包含一个表单。表单包含一个用于输入电子邮件地址的文本字段、一个密码字段、一个“记住我”复选框和一个提交按钮。
文本字段的验证函数应当包括:必须是邮件地址格式、长度应该适中、不能为空
密码字段的验证函数应当包括:不能为空
下面看一下使用flask-wtf实现表单
如果未安装flask-wtf的要先安装。
# pyCharm Terminal
pip install Flask_Wtf
一、引入需要使用的类/函数等
# app/auth/forms.pyfrom flask_wtf import Form #引入Form类
from wtforms import StringField,PasswordField,BooleanField,SubmitField #从wtforms模块中引入4个字段
from wtforms.validators import Required,Length,Email #从wtforms.validators中引入3个验证函数
StringField对应文本字段,用于填写电子邮件地址。
PasswordField对应密码字段,用于填写密码 。
BooleanField对应复选框。
SubmitField对应提交按钮 。
二、实现表单类
# app/auth/forms.pyclass LoginForm(Form): #继承自Form类email = StringField('Email',validators=[Required(),Length(1,64),Email()]) #lineEditpassword = PasswordField('Password',validators=[Required()]) #password editsubmit = SubmitField('Log In') #按钮remember_me = BooleanField('Keep me logged in') #复选框
三、使用表单类渲染HTML模板
# app/templates/auth/login.html{% extends "base.html" %}
{% import "bootstrap/wtf.html" as wtf %} {% block title %}Flasky - Login{% endblock %}{% block page_content %}
<div class="page-header"><h1>Login</h1>
</div>
<div class="col-md-4">{{ wtf.quick_form(form) }}
</div>
{% endblock %}
要想使用wtf.quick_form()来渲染模板,必须引入wtf.html:
{% import "bootstrap/wtf.html" as wtf %}
这样模板就渲染了,再通过视图函数返回即可。
四、在导航栏加上登录/登出按钮
login.html是一个登录页面。通过导航栏上添加按钮,链接到login.html页面。
# app/templates/base.html
#...<ul class="nav navbar-nav navbar-right">{% if current_user.is_authenticated %}<li><a href="{{ url_for('auth.logout') }}">Log Out</a> </li>{% else %}<li><a href="{{ url_for('auth.login') }}">Log In</a> </li>{% endif %}</ul>
判断条件中的变量current_user是由Flask-Login定义的,在视图函数和模板中是自动可用的。
url_for('auth.logout')返回auth.logout的URL。
Python Flask学习_使用flask-login实现认证蓝本(二)相关推荐
- flask异步操作_从Flask到FastAPI的平滑迁移
作者 | Ng Wai Foong 译者 | 马可薇 策划 | 田晓旭 迁移 Flask 服务器以获得更好的性能和可维护性. 本文最初发布于 BetterProgramming,经原作者授权由 Inf ...
- python基础学习_转行零基础该如何学习python?很庆幸,三年前的我选对了
这似乎是一个如荼如火的行业,对于一直在思考着转行的我,提供了一个不错的方向. 这个行业当然就是python程序员,真正开始决定转行是在24岁的时候,到现在已经有三年多了,我从零开始,每天用业余两个小时 ...
- python编程学习_使用EduBlocks轻松学习Python编程
python编程学习 如果您正在寻找一种让学生(或您自己)从Scratch编程转向学习Python的方法 ,建议您研究EduBlocks . 它为Python 3编程带来了熟悉的拖放式图形用户界面(G ...
- 想学python怎么学习_没有基础的想转行学习Python怎么学
原标题:没有基础的想转行学习Python怎么学 无意中听朋友说:Python是一门神奇的语言 ,他建议我去学习Python,因为 Python 作为一门高级语言,通俗易懂,所以我就锁定了目标--学 P ...
- Python Flask学习_使用Flask-wtf和web表单
HTML中的<form> 元素表示表单,表单用于收集用户输入. 之前,学习使用request.form获取表单数据.但是有些任务重复单调,可以实现自动化管理,比如 :生成表单的HTML代码 ...
- Python Flask学习_用户角色和用户权限
在Web App中 ,存在和游客(匿名用户),普通用户,协管员,管理员等不同的角色,应当为不同的角色赋予不同的权限.各个用户只能在权限范围内访问页面.进行操作等. 通过一个例子来说明.本例中的用户分为 ...
- python flask 微信_使用Flask创建微信公众号
基于Python3的Flask微信公众号后台这次先用Flask为微信公众号做个后台.微信公众号后台一般对性能各方面要求并不高,这里我们以新浪SAE为例,其他已解析域名的服务器同理.整个过程比较简单,算 ...
- python多线程处理数据库_在flask框架下利用Python的threading或thread多线程库如何操作数据库?...
萌新在写网站的发送邮件验证,为了防止用户滥发,所以加了权限.前端简单地disable按钮一刷新就没了,纯粹视觉提示作用,所以在后端models里为user加了一个resend_right,当为True ...
- 想学python怎么学习_新手如何自学python课程?
为了Python的自学党们,传智播客真的是拼了,今天给大家讲讲新手如何自学python课程? 传智播客不仅有"人工智能+Python学习路线图",还根据以往的经验,总结出学习Pyt ...
- 【flask学习笔记】flask与HTTP,flask与mongodb交互,用手机输入局域网ip访问flask界面
文章目录 引入(关于http) flask项目的配置 引入(关于http) 当我们在浏览器中的地址栏中输入这个URL,然后按下Enter时,稍等片刻,浏览器会显示一个问候页面.这背后有一个程序运行着. ...
最新文章
- 中国移动互联网2018年度报告:八大关键词总结与十大趋势
- ACM金牌导师1个月带你一起魔鬼刷爆算法题!
- 排队 题解 组合数学+高精度
- sklearn分类器:朴素贝叶斯
- 两种可以支持跨域的方式 - 讲解篇
- android8.1 audio hal关键结构分析(二十五)
- python logging打印终端_python standard package:logging
- 欧几里德算法(求最大公约数和最小公倍数)
- Objective-C的对象模型
- hadoop 开发环境设置以及可运行jar包生成
- paip.刮刮卡砸金蛋抽奖概率算法跟核心流程.
- H5编辑器核心算法和思想-遁地龙卷风
- 基于Qt开发的游戏手柄小程序例子
- 语音(一)| 语音识别基础(深度解析)
- ET6.0服务器框架学习笔记(一、启动配置)
- python rot13_PHP str_rot13() 函数
- 怎样做好路演PPT/keynote
- 做教育怎么引流?教育行业怎么引流?培训机构引流如何转化?
- poi对excel进行读取
- 江南大学计算机科学复试题目,2021江南大学计算机科学与技术考研真题经验参考书...
热门文章
- 修改php fpm监听端口,怎样修正php fpm监听端口_后端开发
- 8051蜂鸣器程序c语言,单片机有源蜂鸣器试验程序(带电路图)
- 29HTML5期末大作业:在线电影网站设计——电影从你的全世界路过(4页) HTML+CSS+JavaScript 大学生电影网页制作教程 学生HTML电影网页设计作业成品网页制作代码 学生影视
- 心知天气天气状况获取,ESP32获取天气信息(含源码)
- java comp_Java EE异常:名称java:comp未在此上下文中绑定
- 开机提示grub可咋办啊
- doc文件批量转换成htm以及htm批量转成xlsx
- 【新书推荐】大唐的裂变(套装共5册)(王澄明等著)
- 【微生物相关数据库】NAR database issue
- 一张纸厚度是多少毫米_10张纸的厚度大约是多少10张纸能有多厚