最近在用django restframe框架做一个商城项目,有一个关于购物车的业务逻辑,是用cookie和redis存储的购物车信息,在这里记录一下. 完成一个商城项目,如果不做一个购物车,就是十分可惜的.我们先来分析一下业务逻辑,参照,京东.淘宝等大型电商网站,可以发现,对于登录用户以及未登录用户,都是可以使用购物车功能.所以首先我们将这两种情况区分开来,采用不同的存储方式.先来看一下已登录用户,购物车其实类似我们在游览网页时的收藏功能,用于收藏用户喜欢的一些商品,用户使用频率较高,所以我们应…
Django商城项目笔记No.11用户部分-QQ登录 QQ登录,亦即我们所说的第三方登录,是指用户可以不在本项目中输入密码,而直接通过第三方的验证,成功登录本项目. 若想实现QQ登录,需要成为QQ互联的开发者,审核通过才可实现.注册方法可参考链接http://wiki.connect.qq.com/%E6%88%90%E4%B8%BA%E5%BC%80%E5%8F%91%E8%80%85 成为QQ互联开发者后,还需创建应用,即获取本项目对应与QQ互联的应用ID,创建应用的方法参考链接http:/…
Django商城项目笔记No.4用户部分-注册接口-图片验证码 1.首先分析注册业务接口 1.1.分析可得,至少这么几个接口 图片验证码 短信验证码 用户名是否存在 手机号是否存在 整体注册接口 图片验证码.短信验证码考虑到后续可能会在其他业务中也用到,因此我们将图片验证码独立,创建一个新应用verifications,在此应用中实现图片验证码.短信验证码. python ../../manage.py startapp verifications 创建应用后记得在配置文件里注册应用 2.图片验…
Django商城项目笔记No.3用户部分-用户模型类 Django提供了认证系统,文档资料https://yiyibooks.cn/xx/Django_1.11.6/topics/auth/index.html 但是我们的项目中的注册,需要保存用户的手机号,所以要自定义用户模型类,需要给模型类添加额外的字段. Django用户模型类 Django认证系统中提供了用户模型类User保存用户的数据,默认的User包含以下常见的基本字段: username必选. 150个字符以内. 用户名可能包含字母…
Django商城项目笔记No.2项目准备工作 接着上篇开始,创建好工程之后,随之而来的是怎么配置工程,这篇文章记录如何进行相关的配置 1.pycharm打开工程,进行相关的配置 通过pycharm打开md_mall,然后进行下面的操作 2.调整工程目录 创建python包docs,logs,scripts 在子md_mall目录下创建包apps,libs,settings,utils 并且在将settings.py拖到settings文件夹中改名字为dev.py 3.在apps目录下创建应用us…
Django商城项目笔记No.12用户部分-QQ登录2获取QQ用户openid 上一步获取QQ登录网址之后,测试登录之后本该跳转到这个界面 但是报错了: 新建oauth_callback.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html…
Django商城项目笔记No.10用户部分-登录接口 添加url路由 接下来第二步,增加返回内容: 增加结果如下: 配置:上边的方法定义了返回的内容都有哪些,那这个方法jwt还不知道,需要配置: 修改认证后端实现多帐号登录 在users/utils.py中编写 前端login.html代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml…
Django商城项目笔记No.9用户部分-注册接口签发JWTtoken 我们在验证完用户的身份后(检验用户名和密码),需要向用户签发JWT,在需要用到用户身份信息的时候,还需核验用户的JWT. 关于签发和核验JWT,我们可以使用Django REST framework JWT扩展来完成. 安装配置 # 安装 pip install djangorestframework-jwt # 配置 REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES':…
Django商城项目笔记No.8用户部分-注册接口实现 users的view.py中增加如下代码 class RegisterUserView(CreateAPIView): """ 用户注册视图 """ serializer_class = serializers.RegisterUserSerializer 在users中创建serializers.py class RegisterUserSerializer(serializers.Mod…
Django商城项目笔记No.7用户部分-注册接口-判断用户名和手机号是否存在 判断用户名是否存在 后端视图代码实现,在users/view.py里编写如下代码 class UsernameCountView(APIView): """ 判断用户名是否存在 """ def get(self, request, username): """ 获取指定用户名数量 :param request: :return: &quo…