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.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.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…
Django商城项目笔记No.4用户部分-注册接口-短信验证码实现celery异步 接上一篇,如何解决前后端请求跨域问题? 首先想一下,为什么图片验证码请求的也是后端的api.meiduo.site:8000,可是不会造成这样的错误呢? 因为图片验证码的请求其实是由浏览器本身发起的(修改img的src,浏览器发起请求),而点击获取验证码是由我们自己的代码主动发起的请求. 所以图片验证码不会出现跨站请求 我们需要先了解一个事情: 在发起跨站请求的时候,浏览器会发送一个option方式的请求(Htt…
Django商城项目笔记No.4用户部分-注册接口-短信验证码 短信验证码也保存在redis里(sms_code_15101234567) 在views中新增SMSCodeView类视图,并且写出步骤如下: 写逻辑 因为这里要用到序列化器,所以就继承了GenericAPIView,这样的话,可以指定serializer_class,然后通过get_serializer就可以实例化序列化器了. 注意: 既然继承了GenericAPIView,那为啥不设置queryset属性,只设置了seriali…
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.1项目准备工作 一.本项目商城属于B2C商业模式 二.项目采用前后端分离的应用模式 前端使用Vue.js 后端使用Django REST framework 1.创建gitee仓库 码云https://gitee.com/ 2.在ubuntu克隆项目,创建虚拟环境,安装django 2.1创建虚拟环境 mkvirtualenv md_mall -p python3 2.2安装django,rest_framework,pymysql pip install djan…
首先完成省市区三级联动 新建areas应用 python ../../manage.py startapp areas 模型类代码 class Area(models.Model): """ 行政区划 """ name = models.CharField(max_length=20, verbose_name='名称') parent = models.ForeignKey('self', on_delete=models.SET_NULL,…
首先处理个人信息的显示 邮箱绑定: 首先给用户的模型类里添加一个字段来说明用户的邮箱是否激活 然后数据库迁移 python manage.py makemigrations python manage.py migrate 返回用户信息: 后端接口设计 根据接口增加视图逻辑 而get中的逻辑,其实就是获取详情的逻辑,所以我们可以继承RetrieveModelMixin 还可以直接继承RetrieveAPIView: 结果如下 序列化器如下 指定查询集 但是RetrieveAPI中获取详情数据的u…
保存邮箱界面如下 接口设计如下 视图逻辑: 因为url是不接受pk参数的,所以UpdateApiView无法确定要更新哪个模型类,所以要重写get_object,告诉他更新哪个模型类.这里更新的是user模型类. 序列化器如下 序列化器中就两个字段id和email,关于这俩字段的方向问题,都不用处理. id,默认只能做序列化操作. email,序列化器和反序列化都要做,也是默认. 注意:这里还没有处理到更新邮箱的逻辑,在下边发送邮件的时候,处理. 发送邮件 使用Django发送邮件的方法 在Dj…
收货地址管理 首先就是新增地址 看图分析所需要保存的字段 因为是用户的地址,所以在users应用中的models创建模型类 class Address(BaseModel): """ 用户地址 """ user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='addresses', verbose_name='用户') title = models.CharFie…
首先增加前端页面success_verify_email.html页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="…
数据库表设计 在电商中对于商品,有两个重要的概念:SPU和SKU SPU = Standard Product Unit (标准产品单位) SPU是商品信息聚合的最小单位,是一组可服用.易检索的标准化信息的集合,该集合描述了一个产品的特性. 通俗的讲,属性值.特性相同的商品就可以称为一个SPU. 例如: iPhone X 就是一个SPU,与商家.颜色.款式.规格.套餐等都无关. SKU = Stock Keeping Unit (库存量单位) SKU即库存进出计量的单位,可以是以件.盒.托盘等为…
最近在用django restframe框架做一个商城项目,有一个关于购物车的业务逻辑,是用cookie和redis存储的购物车信息,在这里记录一下. 完成一个商城项目,如果不做一个购物车,就是十分可惜的.我们先来分析一下业务逻辑,参照,京东.淘宝等大型电商网站,可以发现,对于登录用户以及未登录用户,都是可以使用购物车功能.所以首先我们将这两种情况区分开来,采用不同的存储方式.先来看一下已登录用户,购物车其实类似我们在游览网页时的收藏功能,用于收藏用户喜欢的一些商品,用户使用频率较高,所以我们应…
设计到的前端知识 项目的前端页面使用vue来实现局部刷新,通过数据的双向绑定实现与用户的交互,下面来看一下需求,在用户输入内容后,前端需要做一些简单的规则校验,我们希望在在用户输入后能够实时检测,如果有错误能够在输入框的下方显示出来. <li> <label>用户名:</label> <input type="text" name="username" id="user_name"> <spa…
之前写商城项目的时候,采用的日志处理方式为在终端输出或者写入文件,这样的话,项目部署上线之后,若服务器出现错误,需要到服务器查看相关的错误日志,很不方便.后期在学习别人开源项目的时候,学习到一个开源的实时错误报告工具--sentry.用sentry来管理日志,我们可以使用sentry官网(https://sentry.io/)提供的云服务,只需要注册一个sentry账号,这样我们就可以到官网查看错误日志.首先安装扩展包 pip install raven 在django的settings里配置s…
转自:https://blog.csdn.net/eson_15/article/details/51425010 上一节我们做完了购物车的基本操作,但是有个问题是:当用户点击结算时,我们应该做一个登录的判断,判断用户有没有登录,没有登录的话,得首先让用户登录.这就用到了过滤器的技术了,过滤器是专门拦截页面请求的,它与拦截器的原理差不多,拦截器是专门拦截Action请求的,所以各有所用,如果直接是页面的跳转,不经过Action的话,我们只要写一个拦截器即可,如果需要跳转到一个Action处理,那…
3.4.1需求分析 要想实现只查询自己的课程信息则需要获取当前用户所属的企业id. 1.认证服务在用户认证通过将用户所属公司id等信息存储到jwt令牌中. 2.用户请求到达资源服务后,资源服务需要取出header中的jwt令牌,并解析出用户信息. 说明令牌中已经有公司的id了 controller拿到request 继承BaseController 那么就可以直接拿到了request对象. Oauth2Util就是解析jwt里面的令牌数据 这样就拿到了单位id 重启课程服务 换用户登陆…
一,预先定义内容 #关联表followers = db.Table('followers', db.Column('follower_id', db.Integer, db.ForeignKey('user.id')), db.Column('followed_id', db.Integer, db.ForeignKey('user.id')) ) Post.query.join(...).filter(...).order_by(...) 二,模型图示 用户表User id username…
<?php session_start(); //ini_set('session.auto_start', 0); //关闭session自动启动 //ini_set('session.cookie_lifetime', 0);//设置session在浏览器关闭时失效 //ini_set('session.gc_maxlifetime', 3600); //session在浏览器未关闭时的持续存活时间 //防止同一用户的重复登录 $server = '127.0.0.1'; $username…
基本命令 mkdir mysite # 创建项目目录,常取名mysite cd mysite virtualenv env # env\Scripts\activate.bat # Win pip install django==2.1.3 python -m django --version # 查看django版本 where python django-admin startproject mysite # 创建项目,也可以选择利用Pycharm创建一个Django项目 python ma…
商品种类的无限极分类 $data=db('goods_type')->field(['*','concat(path,",",id)'=>'paths'])->order('paths')->select(); foreach($data as $k=>$v){ $data[$k]['name']=str_repeat('|--',$v['level']).$v['name']; } ThinkPHP 5 中的公共函数调用问题:整个应用的公共函数放在\ap…
目录 (一)微信公众号开发之VS远程调试 (二)微信公众号开发之基础梳理 (三)微信公众号开发之自动消息回复和自定义菜单 (四)微信公众号开发之网页授权获取用户基本信息 (五)微信公众号开发之网页中及时获取当前用户Openid及注意事项 前言 这篇主要是承接上篇的网页授权获取用户基本信息的后文,也是对第一种静默授权之后,用户点击公众号内链接时,如何再次取得当前用户的OpenId的大致讲解和一些注意事项. 看过上一篇的小伙伴都知道,我们在用户关注的时候就已经将该用户的基本信息存入数据库中,那么如果…
通过上一篇<小白学react之EJS模版实战>我们学习了怎样通过EJS模版生成我们高定制化的index.html文件. 本篇我们将会继续延续我们的alt-tutorial项目的实战计划.去获取微信扫码用户的信息.并将头像显示在我们页面的右上角上. 终于实战效果将例如以下所看到的. 首先依据我们的站点url生成二维码,比方我们能够通过浏览器的FeHelper来生成: imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt=&quo…
目录 (一)微信公众号开发之VS远程调试 (二)微信公众号开发之基础梳理 (三)微信公众号开发之自动消息回复和自定义菜单 (四)微信公众号开发之网页授权获取用户基本信息 (五)微信公众号开发之网页中及时获取当前用户Openid及注意事项 前言 这篇主要是承接上篇的网页授权获取用户基本信息的后文,也是对第一种静默授权之后,用户点击公众号内链接时,如何再次取得当前用户的OpenId的大致讲解和一些注意事项. 看过上一篇的小伙伴都知道,我们在用户关注的时候就已经将该用户的基本信息存入数据库中,那么如果…