当前位置: 首页 > news >正文

17网站一起做网店潮汕依依大型网站如何做别名

17网站一起做网店潮汕依依,大型网站如何做别名,网站百度显示绿色官网字如何做的,盲盒app开发分析 用户登录后#xff0c;将Cookie中的购物车商品合并到redis数据库中。如果此时redis中已经有相同id的商品#xff0c;则使用Cookie中的数据覆盖redis中的数据。 合并功能需要在用户登录后实现#xff0c;但登录视图中应避免过多与登录逻辑无关的逻辑#xff0c;所以考虑…分析 用户登录后将Cookie中的购物车商品合并到redis数据库中。如果此时redis中已经有相同id的商品则使用Cookie中的数据覆盖redis中的数据。 合并功能需要在用户登录后实现但登录视图中应避免过多与登录逻辑无关的逻辑所以考虑对合并功能封装成一个函数在登录视图中调用。 实现 在carts应用下创建utils.py文件在utils.py中定义合并购物车功能的函数。 import base64 import picklefrom django_redis import get_redis_connectiondef merge_carts_cookies_redis(request, user, response):合并购物车数据# 获取cookie中的数据cookie_cart_str request.COOKIES.get(carts)if not cookie_cart_str:return response# 从cookie中取出数据放入字典cookie_cart_dict pickle.loads(base64.b64decode(cookie_cart_str.encode()))new_cart_dict {}new_cart_selected_add []new_cart_selected_remove []# 覆盖for sku_id, cookie_dict in cookie_cart_dict.items():new_cart_dict[sku_id] cookie_dict[count]if cookie_dict[selected]:new_cart_selected_add.append(sku_id)else:new_cart_selected_remove.append(sku_id)redis_conn get_redis_connection(carts)pl redis_conn.pipeline()if new_cart_dict:# 同步商品数据pl.hmset(carts_%s % user.id, new_cart_dict)if new_cart_selected_add:pl.sadd(selected_%s % user.id, *new_cart_selected_add)else:pl.srem(selected_%s % user.id, *new_cart_selected_remove)pl.execute()response.delete_cookie(carts)return response在登录视图类LoginView中登录成功后调用上述合并函数LoginView视图类全部代码如下 class LoginView(View):def get(self, request):return render(request, login.html)def post(self, request):username request.POST.get(username)password request.POST.get(password)remembered request.POST.get(remembered)if not all([username, password]):return HttpResponseForbidden(缺少必须参数)if not re.match(r^[a-zA-Z0-9_-]{5,20}$, username):return HttpResponseForbidden(请输入正确的用户名)if not re.match(r^[a-zA-Z0-9]{8,20}$, password):return HttpResponseForbidden(密码8-20位)user authenticate(usernameusername, passwordpassword)if user is None:return render(request, login.html, {account_errmsg: 账号或密码错误})login(request, user)print(request.session.session_key)if remembered ! on:request.session.set_expiry(0)else:request.session.set_expiry(None) # 2周过期# 在Django中request.GET.get(next)的值是一个字符串它代表用户在登录前尝试访问的原始URL。# 这个值由Django自动添加到登录URL中用于在用户成功登录后将其重定向回原始页面。next request.GET.get(next)print(next)if next:# 重定向到nextresponse redirect(next)else:# 重定向到首页response redirect(reverse(contents:index))# 新增设置cookieresponse.set_cookie(username, user.username, max_age3600 * 24 * 14)response merge_carts_cookies_redis(request,user,response)return response
http://www.pierceye.com/news/566580/

相关文章:

  • 北京设计公司网站互联网行业都有哪些工作岗位呢
  • lnmp wordpress建设多网站个人网站设计毕业设计论文
  • 如何申请建设网站网站运营与管理的心得体会
  • WordPress如何建小语种网站网站用橙色
  • 北京专业网站优化c2c平台名称
  • 网站建设成本多少四平网站建设公司
  • 专做婚宴用酒是网站玄武模板网站制作报价
  • 建设大型网站设计公司微信公众号菜单跳转网页怎么制作
  • 昆明建设网站网页游戏4399
  • 韶关网站开发搜索引擎调价工具哪个好
  • 镇江做网站的公司上海排名前十的装修公司
  • 如何优化网站关键字网站登录 退出怎么做
  • 网站留言板怎么做湖北网站建设企业
  • 网站建设 教案装饰工程公司经营范围包括哪些?
  • 如何制作动漫网站模板下载地址wamp安装wordpress
  • 做一张简单的app网站多钱.net网站开发后编译
  • 网站上的菠菜游戏哪里可以做做移动网站优化软件
  • 延吉最好的网站建设公司单位建设网站需要的材料
  • 做可视化的网站宿迁 网站制作
  • 深圳如何搭建制作网站济南网站排名推广
  • 六感程序网站建设网站建设材料
  • 大气个人网站源码一般做门户网站多少钱
  • 东营网站推广排名榆林市工程造价信息网
  • 电影网站排名怎么做制作网站的步骤和方法
  • 请大学生做网站广东恒力建设工程有限公司网站
  • 辽宁建设工程造价管理网站业务外包服务公司
  • 合肥制作网站学校如何建设网站
  • 网站设计机构网站后台管理系统登录
  • 国家单位网站建设要多久网络营销推广公司获客
  • 网站开发 app全网推广代运营