电商项目 2020-11-29

电商项目

2020-11-28 工作内容

完成用户登陆功能

1.用户登陆逻辑分析

  • 核心:用户的验证和状态保持
  • 状态保持 :通过状态保持,可以知道用户是否登陆,方便后续判断,开发功能

    使用Django自带的login保持状态

  • 设计登陆接口,返回首页或者其他页面

2.多用户登陆

  • 需求:方便用户使用用户名或者手机号码登陆
  • 后端逻辑:Django自带的用户认证authenticate只能传递用户名,需要自定义,重写这个方法

3.首页展示用户信息

  • 选择方案:首页展示用户信息,有很多种方法,一种是后端服务器渲染模板,响应前端,一种是前端发送ajax请求,局部刷新,我选择把用户数据存入浏览器cookies中,Vue从cookies获取数据渲染,因为这样能方便后期生成首页静态页面。

4.退出登录

  • 使用Django自带的logout方法,能清楚session数据,解除状态保持
  • 删除cookies中的用户数据,并响应回浏览器

5.用户是否登录

  • 需求:限制一些功能只能登录用户访问
  • 后端逻辑:简单的办法是直接在功能接口判断,但是这样会有很多相同代码段
  • 方案选择:方案有Django自带的is_authenticate、login_required装饰器、LoginRequiredMixin,选择使用 login_required装饰器,创建一个拓展功能类,来实现,并在setting中配置,方便后期增加各种功能。
  • 注意点:Django是否登陆验证中,会自带next参数,能返回访问的时候URL地址,需要处理next参数,方便重定向到正确的URL。

总结

  1. Django调式错误,在写URL路由时候,报错如下,原来是在用别人模板时候,HTML文件中,引用了infoURL地址,但是路由里面并没有,所以报错了,排查好几分钟才发现,多长记性。

    raise NoReverseMatch(msg)
    django.urls.exceptions.NoReverseMatch: Reverse for 'info' not found. 'info' is not a valid view function or pattern name.
  2. Django自带的用户装饰器login_required(),验证不成功,会重定向到URL_LOGIN中的地址,注意修改

  3. v-if=’name’ v-else 不用带参数

  4. v-cloak 能让模板加载渲染完数据才显示效果,避免了页面渲染出现的闪烁问题

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!