在 点击打开链接中,讲解了如何使用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实现认证蓝本(二)相关推荐

  1. flask异步操作_从Flask到FastAPI的平滑迁移

    作者 | Ng Wai Foong 译者 | 马可薇 策划 | 田晓旭 迁移 Flask 服务器以获得更好的性能和可维护性. 本文最初发布于 BetterProgramming,经原作者授权由 Inf ...

  2. python基础学习_转行零基础该如何学习python?很庆幸,三年前的我选对了

    这似乎是一个如荼如火的行业,对于一直在思考着转行的我,提供了一个不错的方向. 这个行业当然就是python程序员,真正开始决定转行是在24岁的时候,到现在已经有三年多了,我从零开始,每天用业余两个小时 ...

  3. python编程学习_使用EduBlocks轻松学习Python编程

    python编程学习 如果您正在寻找一种让学生(或您自己)从Scratch编程转向学习Python的方法 ,建议您研究EduBlocks . 它为Python 3编程带来了熟悉的拖放式图形用户界面(G ...

  4. 想学python怎么学习_没有基础的想转行学习Python怎么学

    原标题:没有基础的想转行学习Python怎么学 无意中听朋友说:Python是一门神奇的语言 ,他建议我去学习Python,因为 Python 作为一门高级语言,通俗易懂,所以我就锁定了目标--学 P ...

  5. Python Flask学习_使用Flask-wtf和web表单

    HTML中的<form> 元素表示表单,表单用于收集用户输入. 之前,学习使用request.form获取表单数据.但是有些任务重复单调,可以实现自动化管理,比如 :生成表单的HTML代码 ...

  6. Python Flask学习_用户角色和用户权限

    在Web App中 ,存在和游客(匿名用户),普通用户,协管员,管理员等不同的角色,应当为不同的角色赋予不同的权限.各个用户只能在权限范围内访问页面.进行操作等. 通过一个例子来说明.本例中的用户分为 ...

  7. python flask 微信_使用Flask创建微信公众号

    基于Python3的Flask微信公众号后台这次先用Flask为微信公众号做个后台.微信公众号后台一般对性能各方面要求并不高,这里我们以新浪SAE为例,其他已解析域名的服务器同理.整个过程比较简单,算 ...

  8. python多线程处理数据库_在flask框架下利用Python的threading或thread多线程库如何操作数据库?...

    萌新在写网站的发送邮件验证,为了防止用户滥发,所以加了权限.前端简单地disable按钮一刷新就没了,纯粹视觉提示作用,所以在后端models里为user加了一个resend_right,当为True ...

  9. 想学python怎么学习_新手如何自学python课程?

    为了Python的自学党们,传智播客真的是拼了,今天给大家讲讲新手如何自学python课程? 传智播客不仅有"人工智能+Python学习路线图",还根据以往的经验,总结出学习Pyt ...

  10. 【flask学习笔记】flask与HTTP,flask与mongodb交互,用手机输入局域网ip访问flask界面

    文章目录 引入(关于http) flask项目的配置 引入(关于http) 当我们在浏览器中的地址栏中输入这个URL,然后按下Enter时,稍等片刻,浏览器会显示一个问候页面.这背后有一个程序运行着. ...

最新文章

  1. 中国移动互联网2018年度报告:八大关键词总结与十大趋势
  2. ACM金牌导师1个月带你一起魔鬼刷爆算法题!
  3. 排队 题解 组合数学+高精度
  4. sklearn分类器:朴素贝叶斯
  5. 两种可以支持跨域的方式 - 讲解篇
  6. android8.1 audio hal关键结构分析(二十五)
  7. python logging打印终端_python standard package:logging
  8. 欧几里德算法(求最大公约数和最小公倍数)
  9. Objective-C的对象模型
  10. hadoop 开发环境设置以及可运行jar包生成
  11. paip.刮刮卡砸金蛋抽奖概率算法跟核心流程.
  12. H5编辑器核心算法和思想-遁地龙卷风
  13. 基于Qt开发的游戏手柄小程序例子
  14. 语音(一)| 语音识别基础(深度解析)
  15. ET6.0服务器框架学习笔记(一、启动配置)
  16. python rot13_PHP str_rot13() 函数
  17. 怎样做好路演PPT/keynote
  18. 做教育怎么引流?教育行业怎么引流?培训机构引流如何转化?
  19. poi对excel进行读取
  20. 江南大学计算机科学复试题目,2021江南大学计算机科学与技术考研真题经验参考书...

热门文章

  1. 修改php fpm监听端口,怎样修正php fpm监听端口_后端开发
  2. 8051蜂鸣器程序c语言,单片机有源蜂鸣器试验程序(带电路图)
  3. 29HTML5期末大作业:在线电影网站设计——电影从你的全世界路过(4页) HTML+CSS+JavaScript 大学生电影网页制作教程 学生HTML电影网页设计作业成品网页制作代码 学生影视
  4. 心知天气天气状况获取,ESP32获取天气信息(含源码)
  5. java comp_Java EE异常:名称java:comp未在此上下文中绑定
  6. 开机提示grub可咋办啊
  7. doc文件批量转换成htm以及htm批量转成xlsx
  8. 【新书推荐】大唐的裂变(套装共5册)(王澄明等著)
  9. 【微生物相关数据库】NAR database issue
  10. 一张纸厚度是多少毫米_10张纸的厚度大约是多少10张纸能有多厚