电商项目 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.
  1. Django自带的用户装饰器login_required(),验证不成功,会重定向到URL_LOGIN中的地址,注意修改

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值