python之Flask实现简单登录功能的示例代码

使用flask-wtf做登录的表单验证,这里简单做了账号密码不为空如,当我们不填写密码时,点击登录:

model/_init_.py

# config=utf-8 
from flask import flask 
from flask_世爵用户登录平台注册login import loginmanager 
from common import db 
login_manager = loginmanager 
login_manager.login_view = "user.login" 
def create_app: 
 app = flask 
 login_manager.init_app 
 if config_filename is not none: 
 app.config.from_pyfile 
 configure_database 
 return app 
def configure_database: 
 db.init_app 

其中,login_manager.login_view = "user.login" 指定了未登录时跳转的页面,即被拦截后统一跳到user/login这个路由下model/user_model.py

# config=utf-8 
from flask_login import usermixin 
from common import db 
class user: 
 user_id = db.column 
 accountnumber = db.column, unique=true) 
 password = db.column, unique=true) 
 name = db.column, unique=true) 
 __tablename__ = 'tb_user' 
 def __init__: 
 self.user_id = user_id 
 self.accountnumber = account_number 
 self.password = password 
 self.name = name 
 def is_authenticated: 
 return true 
 def is_active: 
 return true 
 def is_anonymous: 
 return false 
 def get_id: 
 return unicode 
 def __repr__: 
 return ' user %r ' %  

这里需要注意:

def get_id: 
return unicode 

该方法不可缺少,否则会报:notimplementederror: no `id` attribute - override `get_id`错误。

get_id

返回一个能唯一识别用户的,并能用于从 user_loader 回调中 加载用户的 unicode 。注意着 必须 是一个 unicode ——如果 id 原本是 一个 int 或其它类型,你需要把它转换为 unicode 。

is_authenticated

当用户通过验证时,也即提供有效证明时返回 true

is_active

如果这是一个通过验证、已激活、未被停用的账户返回 true 。

is_anonymous

如果是一个匿名用户,返回 true 。

login.py

#encoding:utf-8 
#!/usr/bin/env python 
from flask import render_template, request, redirect, flask, blueprint 
from flask_login import login_user, login_required 
from model.user_model import user 
from model import login_manager 
from form.login_form import loginform

新闻聚焦
猜你喜欢
热门推荐
  • vue项目部署上线遇到的问题及解决方

    vue项目部署上线遇到的问题及解决方

    前言 今天把自己写的demo登录写完了,就想着试着走一下部署上线的流程。参考了很多的文档,终于成功进行了部署。在这里将服务器的搭建和vue项目的部署上线进行整......

    2019-08-22 来源: 浏览:79 次

    分享
  • PHP面向对象分析设计的61条军规小结

    PHP面向对象分析设计的61条军规小结

    所有数据都应该隐藏在所在的类的内部。 类的使用者必须依赖类的共有接口,但类不能依赖它的使用者。 尽量减少类的协议中的消息。 实现所有类都理解的最基本公有接...

    2019-08-22 来源: 浏览:50 次

    分享
  • AI自由变换工具中的透视该怎么使用

    AI自由变换工具中的透视该怎么使用

    前面我们都一一讲解了自由变换工具的各种功能,今天这节我们来学习它的最后一个功能:透视功能。1、为了好说明,我们现在用矩形工具在画布上画一个矩形图形2、用...

    2019-08-22 来源: 浏览:75 次

    分享
  • python之Flask实现简单登录功能的示例代

    python之Flask实现简单登录功能的示例代

    使用flask-wtf做登录的表单验证,这里简单做了账号密码不为空如,当我们不填写密码时,点击登录:model/_init_.py# config=utf-8 .........

    2019-08-22 来源: 浏览:78 次

    分享
  • C#使用Directoryinfo类获得目录信息和属

    C#使用Directoryinfo类获得目录信息和属

    本文实例讲述了c#使用directoryinfo类获得目录信息和属性的方法。分享给大家供大家参考。具体如下:using system;using system..........

    2019-08-20 来源: 浏览:61 次

    分享
  • 提升网站关键词排名的4大绝招分享

    提升网站关键词排名的4大绝招分享

    不管是大的门户网站还是小的企业网站,无不为关键词排名提升而揪心,排名上不去揪心,排名上去了没流量更揪心,所以必须要有强有力的关键词选取和排名提升的方法...

    2019-08-20 来源: 浏览:39 次

    分享
  • 超全自媒体变现方式:3类8种方式告诉

    超全自媒体变现方式:3类8种方式告诉

    目前微信公众号这么多,早已经过了红利期,那么如何做好一个公众号,如何通过一个微信公众号来变现养活自己呢?首先,微信公账号的盈利模式无非就是依据品牌导入...

    2019-08-20 来源: 浏览:99 次

    分享
  • 苏醒砸的电视是什么牌子的?这回真

    苏醒砸的电视是什么牌子的?这回真

    欧冠半决赛次回合的比赛中,利物浦4-0战胜了巴萨,以总比分4-3淘汰对手晋级欧冠决赛。图片截取自视频图片截取自视频巴萨死粉、歌手苏醒本场在家中与朋友聚会看球时...

    2019-08-20 来源: 浏览:4 次

    分享
  • Python  操作 MySQL 数据库

    Python 操作 MySQL 数据库

    import pymysql #python3conn=pymysql.connect #字符集不是必须的cursor = conn.cursorsql="se.........

    2019-08-15 来源: 浏览:10 次

    分享
  • 文本溢出插件jquery.dotdotdot.js使用方法

    文本溢出插件jquery.dotdotdot.js使用方法

    插件下载地址:https://github.com/frdh/jquery.dotdotdot引入jquery.js和jquery.dotdotdot.jssc.........

    2019-08-15 来源: 浏览:86 次

    分享
  • PS怎么利用路径快速画出简单的花朵

    PS怎么利用路径快速画出简单的花朵

    1、调出椭圆工具,并且把工具模式设置为:路径2、按ctrl+r,调出标尺,再拉出两条参考线,这两条参考线相交;再调出椭圆工具,以相交点为中心画出一个正圆形路径。...

    2019-08-15 来源: 浏览:61 次

    分享
  • 枚举getClass、getDeclaringClass区别

    枚举getClass、getDeclaringClass区别

    枚举getClass、getDeclaringClass区别 1):“不含抽象方法”,所有枚举常量未重写方法,的class getClass与getDeclar.........

    2019-08-15 来源: 浏览:16 次

    分享
  • 选择排序的理解

    选择排序的理解

    .........

    2019-08-13 来源: 浏览:47 次

    分享
  • C++ 单例模式(懒汉、饿汉模式)

    C++ 单例模式(懒汉、饿汉模式)

    // 饿汉模式的关键:初始化即实例化singelton *singelton::single = new singelton;int singelton::m_.........

    2019-08-13 来源: 浏览:89 次

    分享
  • 洛谷 P1141 01迷宫题解

    洛谷 P1141 01迷宫题解

    对于60\%60%的数据,n 100,m 100n 100,m 100;对于100\%100%的数据,n 1000,m 100000n 1000,m 10000.........

    2019-08-13 来源: 浏览:57 次

    分享
  • Java连载12

    Java连载12

    一、集成开发环境1.什么是集成开发环境集成开发环境可以使软件开发变得更简单没有ide工具:i.需要安装jdk,需要配置环境变量;需要手动的将java源文件编译生.........

    2019-08-13 来源: 浏览:43 次

    分享
  • c#使用SoundPlayer播放wav格式音频

    c#使用SoundPlayer播放wav格式音频

    1.引用system.media名称空间下的类soundplayer soundplayer player = new soundplayer;2.方法.........

    2019-08-08 来源: 浏览:15 次

    分享
  • bin文件夹下的某个dll总是自动刷新为

    bin文件夹下的某个dll总是自动刷新为

    如上图所示,一般这种问题都是dll版本和配置文件中的dll版本对应不上才引起的,可以通过替换对应版本的dll或者修改配置文件中的版本号即可。然而我的情况是:修复...

    2019-08-08 来源: 浏览:48 次

    分享
  • WeihanLi.Npoi 导出支持自定义列内容啦

    WeihanLi.Npoi 导出支持自定义列内容啦

    之前也有网友给提出过希望列合并或者自定义列内容的 issue 或请求,起初因为自己做 weihanli.npoi 这个扩展的最初目的是导入导出的简单化,使用这个.........

    2019-08-08 来源: 浏览:51 次

    分享
  • 1. mvc 树形控件tree + 表格jqgrid 显示界

    1. mvc 树形控件tree + 表格jqgrid 显示界

    [{"id":"1","text":"系统管理","value":"1","parentnodes":"0","showcheck":false,"isexpa.........

    2019-08-08 来源: 浏览:25 次

    分享
换一换
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。