完整电商项目--(四)用户登录(2):判断用户是否登录

基于flink的电商用户行为数据分析【1】| 项目整体介绍 前言         愉悦的一周又要开始了,本周菌哥打算用几期文章为大家分享一个之前在B站自学的一个项目——基于flink的电商用户行为数据分析。本期我们先对项目整体功能和模块做一个介绍。         正式介绍项目整体之前,我们来探讨一下批处理和流处理技术。 批处理 VS 流处理      & 阅读详情

前面讲了session机制,作为登录状态保持:

  • 那么既然登录状态已经保持了? 我们为什还要去判断,用户请求接口时 是否登录呢?
  • 我希望大家不要迷惑这些。session机制,只是保存用户的信息,并且交由 客户端一个 sessionid,用来验证用户已登录。 这一过程:我认为是发生在中间件当中的。 在django生成 request 对象的时候, 前端携带 带有sessionid的 cookie,经过处理,验证通过,说明已登录。并开始构造当前登录用户的对象 request.user, 若未验证通过,则request.user 表示的则是一个匿名用户。
  • 而这仅仅是django知道了,是都当前已经有用户登录进来。我们的接口并不知道这些。在一些需要登录才能访问的请求当中,我们需要自己 在视图当中 使用相关的 方法 进行验证用户以登录。

原始的登录判断方法 is_authenticated():

在这里插入图片描述
实际例子:
在这里插入图片描述

  • 很简单通过判断 返回的结果是 True 还是 Flase 判断是否登录。
  • 缺点:
    • 登录验证逻辑很多地方都需要,所以该代码需要重复编码好多次。

login_required装饰器

  • 内部封装了is_authenticate
  • 位置:django.contrib.auth.decorators
  • 作用于函数
  • 先看下文档的介绍
    在这里插入图片描述
  • 很清楚,一共有两个值得注意的参数
  • (1)login_url , 这是验证失败后跳转的地址
  • (2) ‘next’ :这是 login_url 链接中的,一个参数,用于登录成功之后的跳转。
  • 当然,后面提到这个 参数next 的名字,可以自己更改。
问题来了
  • 我们定义的视图 是 类视图,所以要对 装饰器进行一些封装

  • 方法: 要想使用login_required装饰器装饰类视图,可以间接的**装饰as_view()**方法的返回值,以达到预期效果

  • 首先了解 as_view() 方法的用处
    view函数主要做了两件事情,一是实例化一个类视图对象,这个容易理解,是哪个类视图对象接收了请求那就实例化哪个。二是调用dispatch方法,根据http请求方法(比如get,post)分派处理函数

  • 也就是说,as_view()方法返回的就是类视图中的某个所请求的方法。 这就可以使用装饰器进行封装了。

实现:代码
  • 我们新定义文件,里面写重新封装的代码
class LoginRequired(object):
  """验证用户是否登陆"""

  @classmethod
  def as_view(cls, **initkwargs):
      # 自定义as_view()方法中,调用父类的as_view()方法
      view = super().as_view()
      return login_required(view)

# 视图例子

class UserInfoView(LoginRequired, View):
    """用户中心"""

    def get(self, request):
        """提供个人信息界面"""
        return render(request, 'user_center_info.html')
  • (1) 封装的 LoginRequired,放在第一个位置!
  • (2)这就是巧妙之处! LoginRequired,中用用了 super调用父类的as_view( ) 方法,要知道,继承的可是 object?? 哪里来的这个方法?
  • 这就要提到python多继承中的 顺序(MRO),使用C3算法。大家详细的可以去查看官方文档。
  • 因为(1)我们启动的是视图类 UserInfoView,所以当执行 as_view() 方法时,调用LoginRequired中定义的 as_view() 方法(2)此时的MRO顺序当中, 他的继承父类 先是View类! 所以继承该方法,最终实现 登陆验证的操作。

同时注意在settings中 配置 上面讲的 login_url 配置项,以及next参数的跳转即完成啦!

over!

电商项目需求分析 电商项目需求分析 1.电商项目 1 面向对象设计项目的实体模型 2 Java中的集合框架,使用集合框架构建醒目数据底层 3 使用函数/方法复用代码,实现功能的回调,完成项目的业务逻辑开发 4 使用Java IO流实现购物清单打印 5 Java应用的 6 HTTP协议 7 HTTP通信开发 项目业务功能 实现用户的登录功能 实现用户的注册功能 登录成功后首页展示所有商品的类别 选择商品... 阅读详情

相关推荐

Vue3+Spring Boot 大型电商项目实战前后端分离

本项目是一个功能齐全的电商平台,包括用户注册与登录、商品展示与搜索、购物车管理、订单处理等功能模块。前端采用 Vue 3 构建,利用其响应式数据绑定和组件化开发的优势,为用户提供流畅的交互体验;后端基于 Spring Boot 框架,提供高效的接口服务和数据处理能力。

HappyAcmen 2712

基于Springboot外卖系统05:用户非登陆状态的页面拦截器实现

用户访问接口验证,如果用户没有登录,则不让他访问除登录外的任何接口。1.前端登录,后端创建session,返给前端2.前端访问其他接口,失效或不存在,则返回失效提示,前端根据接口返回的失效提示,让其跳转到登录界面自定义一个过滤器 LoginCheckFilter 并实现 Filter 接口, 在doFilter方法中完成校验的逻辑。......

小李的研究生学习日记 1万+

电商项目之购物车设计

购物车 购物车数据的储存 购物车设计是每个电商项目中必不可缺的一环,不管登录与否,购物车都可以使用.那么购物车的数据我们存在哪里呢? 登录时,购物车的数据理所应当的存在redis数据库中,可是未登录时呢? 在这里我们给出了三个方案 1、当用户在未登录的情况下,将此购物车存入Cookie中, 在用户登陆的情况下,将购物车数据存入redis 。如果用户登陆时,Cookie中存在购物车数...

woshisunxinyuan的博客 7892

判断用户是否登录

用户中心页面规定: 当用户登录后,才能访问用户中心 如果用户未登录,就不允许访问用户中心,将用户引导到登录界面 (1)传统实现方式: 如果已经登陆:request.user.is_authenticated == True 如果未登陆: request.user.is_authenticated == False # 获取用户中心数据 class UserInfoView(View): def get(self, request): if not request.user.i

user_san的博客 4627

【电商项目】-实现用户登录

前言 本篇博客主要是实现电商项目的登录功能,希望通过查看本篇博客,能给您带来收获:

知识改变命运,ヾ(◍°∇°◍)ノ゙【求关注】 640

防火墙断网后Adobe软件还弹窗“THIS APP HAS BEEN DISABLED”?原来是科学上网导致的问题!用这个简单方法一键解决!

很多小伙伴在使用上网工具的时候时,突然遇到Adobe弹出“THIS APP HAS BEEN DISABLED”的烦人提示,这个非正版弹窗真的让人头疼!即使你之前尝试过,有时也不奏效,究其原因,原来是因为你使用了代理网络,这时Adobe的流量并不是走本地,而是走代理,导致防火墙的拦截无效。不用慌!今天我来教大家如何通过上网工具,轻松禁用Adobe验证的联网流量,彻底解决这个问题!

qq_34093397的博客 3万+

Java后台使用token验证用户是否登录

参考博客:https://blog.youkuaiyun.com/kkkun_joe/article/details/81878231 与cookie相比较的优势: 1、支持跨域访问,将token置于请求头中,而cookie是不支持跨域访问的; 2、无状态化,服务端无需存储token,只需要验证token信息是否正确即可,而session需要在服务端存储,一般是通过cookie中的sessionID在服...

zdj18166896501的博客 1万+

用R语言做WGCNA分析全步骤一(附代码解读)【转载】

代码逐句分析一、文章来源二、基因共表达网络构建及模块识别1.数据导入、清洗及预处理2.检查过度缺失值和离群样本3.聚类做离群样本检测4.载入临床特征数据三、自动构建网络及识别模块1.确定合适的软阈值:网络拓扑分析2.一步构建网络和识别模块 一、文章来源 初学WGCNA,觉得博主的代码写的很不错,但其中很多代码在第一遍看的时候有很多地方不理解,后查阅了很多资料,终于看明白了,于是写了一篇笔记,记录自己的学习心得,有不准确的地方,还望各位大佬们不吝赐教~ 原文链接:WGCNA简明指南 二、基因共表达网络构建及模

qq_43138237的博客 2万+

验证用户是否登录 (认证用户)

实现思路、测试:

qq_46423017的博客 2268

new delete 详解

常规的new 和 delete 当需要内存时,可以使用new申请内存,但在用完内存时应当使用delete 去归还内存,以防止内存泄漏,具体使用方案见下面代码: int* ps = new int ; // 使用new 申明变量空间 ... ... delete ps ; '// delete 删除所申明的变量空间 上述代码将删除ps 指针指向的内存空间,但不会删除指针本身,即仍然可以使用该指针去指向其他int 类型的变量。new 和 delete 一定需要成对的使用否则极易发生内存泄漏。 注意:不

qq_42138448的博客 6938

如何构建一个 AI 驱动的数据分析系统

在现代数据分析中,将 AI 引入数据分析系统中可以极大提升效率和自动化程度。本文将从架构设计、工具选择、实现步骤等多个方面进行详细说明,帮助你构建一个 AI 驱动的数据分析系统。

晴天彩虹雨的博客 703

【电商项目实战】用户登录(详细篇)

当用户输入用户名和密码将数据提交给后台数据库进行查询,如果存在对应的用户名和密码则表示登录成功,登录成功之后跳转到系统的主页就是index.html页面,跳转在前端使用jquery来完成。

知足上进,不负野心。 2163

22h2版本的win10安装Docker Desktop时页面空白

摘要:Windows10 22H2系统重装Docker时出现安装界面卡死问题,通过管理员CMD执行静默安装命令解决。命令指定了WSL-2后端及多个自定义数据存储路径(安装目录、Hyper-V数据、Windows容器数据、WSL数据),安装需等待几分钟。最终验证安装成功。

猿小白的博客 650

Spring Boot电商项目44:购物车模块二:统一校验当前是否有用户登录(没有区分是普通用户还是管理员用户);

说明: (1)本篇博客必要性说明: ●我们知道,项目中有的接口(其实就是后台系统的那些接口),是需要管理员登录时,才能够访问的;所以在这些接口正式执行前,我们需要先检查当前是否有管理员用户的登录; 而,为了提高效率,在【Spring Boot电商项目27:商品分类模块六:统一校验管理员身份;(选用【J2EE中的过滤器】来实现需求;重难点是【如何在Spring Boot项目中,使用过滤器】;)】中,我们使用过滤器来统一校验管理员身份,以提高开发效率、提...

小枯林的博客 4192

SOME/IP协议详解「1.1·面向服务与面向信号」

面向信号和面向服务的区别,和举例子

雪云飞星的博客 5652

具身智能(40):主流 VLA 模型π₀

摘要: π₀是首款专为机器人设计的VLA(视觉-语言-动作)端到端基础模型,通过双阶段训练实现“感知-决策-执行”闭环。其创新点包括:1)FlowMatching技术实现连续平滑动作控制(精度0.3°);2)结合VLM预训练与多机器人实操数据,零样本任务完成率达76.4%,远超同类模型;3)支持模糊指令理解与动态场景适应(如遮挡识别)。开源版本涵盖不同规模模型,适用于工业装配、服务机器人等场景,在延迟(213ms)和稳定性(92%自主恢复率)上显著领先OpenVLA等竞品。

码农17年的博客 509

SpingBoot的项目实战--模拟电商【2.登录】

升级版的登录功能强势来袭!!!

m0_74315688的博客 2595

串口通信的性能瓶颈分析:如何提高数据吞吐量和降低延迟

摘要: 串口通信在高频或大数据场景下存在吞吐量不足、延迟高、丢帧等问题,主要瓶颈包括波特率限制、缓冲区不足、CPU轮询延迟等。优化策略包括:提升波特率至硬件上限、增大缓冲区、采用异步I/O(如ReadAsync)减少线程切换,使用二进制协议降低解析开销。实时性方面需启用硬件流控、批量发送数据,并优化线程优先级。跨平台适配需区分Windows/Linux的缓冲区设置与异步机制。性能测试可通过吞吐量、延迟及回环测试验证优化效果,核心原则是硬件匹配、异步处理、协议优化与跨平台适配。(150字)

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 979

基于 flink 的电商用户行为数据分析【9】| 电商常见指标汇总 + 项目总结

        本篇是flink 的「电商用户行为数据分析」的第 9 篇文章,也是该系列的最后一篇,为大家带来电商常见的指标汇总和对前8篇文章做一个的阶段性的总结,并融入一些我自己的思考,希望大家能够从中受益,感谢阅读! 电商指标整理 有关"人"的指标 客服 指标名词 名词解释 询单量 下单前来询问客服的客户总数 询单转换率 (转化率= 成单数/来访量转化率)影响的因素有:宝贝描述(宝贝图片优化和描

大数据梦想家 7367

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

电商商城之判断用户是否存在

第一步:service层 /** * 判断用户名是否存在 */ public boolean queryUsernameIsExist(String username); 第二步:service实现层 @Transactional(propagation= Propagation.SUPPORTS) @Override public...

Richard_666的博客 412

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【电商支付项目(四)】用户模块:注册、登录、登出、单元测试

电商开发前注意事项:技巧①:判断网站是否是前后端分离正式开发1、利用Mybatis-generator自动生成`mall_user`表的`pojo、dao、mapper`2、新建`Service`包 电商开发前注意事项: 技巧①:判断网站是否是前后端分离 前后端分离: 1、Content-Type:application/json 2、开发顺序:Dao -> Service -> Controller 3、单元测试:Service层 4、Mybatis打印SQL语句 正式开发 1、利用

心海非海_のBlog 1456

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

用户登录模块——基于Django框架的天天生鲜电商网站项目系列博客(四)

系列文章目录 天天生鲜项目需求分析——基于Django框架的天天生鲜电商网站项目系列博客(一) 天天生鲜项目网站框架搭建——基于Django框架的天天生鲜电商网站项目系列博客(二) 天天生鲜项目用户注册模块——基于Django框架的天天生鲜电商网站项目系列博客(三) 待更新…… 项目资源下载 天天生鲜电商网站项目源码Github地址(可Fork可Clone) 天天生鲜电商网站项目源码Gitee地址(可Fork可Clone) 天天生鲜电商网站项目源码压缩包下载(直接使用) 天天生鲜电商网站项目所需全部

IronmanJay 3925

完整电商项目--(四)用户登录(1):基本业务逻辑

账号登录 多账号登录: 支持使用注册时的 用户名,和 手机号进行登录 这是目前最流行的方式我觉得,给用户的体验也是最好的。 信息化时代,任何网站都需要账号。 众多的用户名。。。我是记不住。 但是同一个特点是都支持手机号登录。 我们可以输入手机号 和密码进行登录。 登录流程(同注册时讲的一样) 接收,验证,处理,响应 (1)处理当中的 保持登录状态 以及后续的退出登录,都已经讲过了。 (2)我们在登陆成功之后,肯定是跳转到首页的。 然后显示用户名的操作: 方案一:模板中 request 变量直接渲染

pythonstrat的博客 1236

Java电商项目面试--用户模块

面试:用户模块技术要点: 1、横向越权和纵向越权 2、MD5明文加密、guava缓存 3、高复用服务响应对象的设计思想和封装 一、用户模块功能 用户模块包含功能如下: 1、登录功能 2、用户名校验 3、注册功能 4、忘记密码 5、提交问题答案 6、重置密码 7、获取用户信息 8、更新用户信息 9、退出登录 二、高复用服务响应对象的设计思想和封装 ...

小刺猬 9483

完整电商项目--(四)用户登录(3):第三方登录-QQ登录

1

pythonstrat的博客 788
上一篇: 完整电商项目--(四)用户登录(1):基本业务逻辑
下一篇: 完整电商项目--(四)用户登录(3):第三方登录-QQ登录
我是py呀
博客等级 码龄8年 205粉丝 130原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值