12 2018 档案
摘要:今天看到这些命令,记录一下,以便日后看到的时候感觉没见过,那就尴尬了 1、启动网站服务: 1.uwsgi -i jxiou_uwsgi.ini & 启动uwsgi 2.ps -ef|grep -i uwsgi 查看进程情况 3./usr/sbin/nginx 启动nginx 4.ps -ef|gre
阅读全文
摘要:以前自己写过一个开源的项目,没部署到线上环境,借此机会熟悉下线上部署的流程 1、Linux上安装数据库MySQL,创建一个数据库database 名 Mxonline 2、使用远程工具 Navicat Premium 登录Linux数据库上,并把本地已经跑好的数据库表同步传输到 Mxonline上
阅读全文
摘要:修改商品数量:比如之前一个商品id 的商品数量num 是2 ,现在变更成5 我们的serializers 继承的底层的serializers,而serializers 又是继承 BaseSerializer 。查看 BaseSerializer 的源码:并没有给我们重写update 方法 所以修改信
阅读全文
摘要:首先我们看下表设计: 我们现在要实现的功能是 加入购物车逻辑,其实加入购物车这种可以在本地实现的,不用请求服务器,但是考虑商品的时效性,用接口来做体验可能要好一些 我们来分析下购物车的操作体验: 回去购物车商品列表,新增商品到购物车,删除购物车记录,对应的就是mixin 的 ListModelMix
阅读全文
摘要:第九章开发总结: 这一章节主要是 用户的个人中心模块,比较简单 1、动态的配置premisstion 2、动态的配置serializers 3、用户的个人信息修改 4、个人中心--用户收藏功能的实现 5、个人中心--用户留言功能的实现 6、个人中心--用户收获地址功能的实现 总结:还是要回到前面去去
阅读全文
摘要:第一步:viewSet: 第二步:model serializers 第三步:测试
阅读全文
摘要:第一步:写viewSet 第二步:写serializers 第三步:测试
阅读全文
摘要:这里我们也要用动态化serializers 创建收藏时用UserFavSerializers ,个人中心获取用户收藏记录用UserFavDetailSerializers 收藏 和获取收藏记录 都要用户权限,所以premisstion 这里不用动态化 测试:
阅读全文
摘要:mixins.UpdateModelMixin 就是用来修改信息的,这里面继承了更新和部分更新的操作 它接收 put patch 请求,put 实际是一种更新的操作,patch 是部分更新 测试: 迎你有
阅读全文
摘要:跟上一篇写的动态获取premisstion 思路一样CreateModelMixin 有自己对应的serializers ,mixins.RetrieveModelMixin 想要自己的Detailserializers 又是共用一个viewSet ,于是我们也来动态化配置serializers 跟
阅读全文
摘要:首先我们来看下我们写的用户usersViewSet 新建用户,获取用户信息详情,修改用户详情,是共用同一个viewset,但是新建用户是不需要 用户token的,获取详情和修还用户信息是需要用户的token的 但是又是共用同一个配置,那怎么办呢? 于是就引进了 动态化配置premisetion 看源
阅读全文
摘要:我们有的时候要测试一些前端一些显示上的的兼容性,或者有些无法配置的东西想看看前端的效果,这时我们只需要写出response 回包内容就可以模拟出来 第一步:首先新建一个.txt 文件在桌面上,里面填充 response 回包 json 格式的内容 第二步:进入fiddler AutoResponde
阅读全文
摘要:唯一联合索引: 以商品收藏为例:同一个不能连续收藏同一个商品id 这时候我们就要把数据库中的两个字段 user 和good 设置成唯一联合索引 还有第二种方法:就是在validate里面也可以设置 django rest framwork api guide
阅读全文
摘要:一,创建用户收藏的viewset 二、serializer 写法 三。配置url 问题:我们直接在serializer 里面fields 是直接写的user,那么序列化的时候会把表里面所有的user 返回给我们 这样是不对的,我们不能让前端来选择用户,而是获取前端请求中带过来的user django
阅读全文
摘要:我们先来回顾下 我们goods 表的定义 其中商品是否是 热卖,以及是否是新品 都有字段标识 这种 数据库中 0 代表否,1代表是 ,要用model BooleanField 实现商品热卖的接口 实际上 是在商品中筛选 出来 那么我们就要进入 过滤器了 一、配置 二、goods 新建一个filter
阅读全文
摘要:查看我们的表设计,商品图片是有个外键 关联商品id 的 那么我们要在goods 的serilazers 中怎么序列化这个 外键GoodsImage表的所有记录呢? 第一步:先新建一个GoodsImageSerilazers 第二步: 在goodSerializers里面设置关联 注意这里many=T
阅读全文
摘要:我们如何来完成商品详情页的接口呢? 首先要配置一个商品详情的url 按照我们正常的接口配法 ,应该是后面要加一个id 的,为什么这里没有加id 呢? ,应该是rooter register 的作用吧,等我在学习一遍基础再来回答? 那么我们再来写viewset Mixin.RetrieveModelM
阅读全文
摘要:对Linux 命令接触不多,一脸懵逼,跑去问运维,记录下吧 前端开发说 finance 服务挂了,让我重启下 第一步:首选我们模糊匹配一下服务的进程状态信息 ps -ef|grep finance 解释: ps: ps命令将某个进程显示出来 grep命令是查找 中间的|是管道命令 是指ps命令与gr
阅读全文
摘要:第七章开发总结:整理一下我们的知识点: 1、首先是django rest framwork 的token 登录和原理 django rest framwork 为我们提供了三种 认证模式 重点是 TokenAuthentication 这个 可以根据api guide 上面一步步的来配置,要配置一个
阅读全文
摘要:用户注册前端post 过来的手机号,我们是当成用户名 username来处理的,那我们的用户表userprofile 里面的user_mobile不是一直都是空的?当然不是,我们可以将user_mobile初始化为这个手机号username 用户设置的时候修改用户手机号 就直接修改user_mobi
阅读全文
摘要:现在比较流行的做法就是 :用户注册完成后直接登录,进行后续操作,不需要再去登录一遍 那么我们就在 view 里面重写 create 方法 我们查看django rest framwork 生成token的源码是这样的 因此我们要生成token ,拿到token的话 就必须要引入这两个 jwt_pay
阅读全文
摘要:我们继续来完善用户的注册功能 注册的时候前端post过来 手机号,验证码,密码,而密码和验证码我们只需要在serialzers 里面验证用,不需要序列化返回给前端 正常的serialzers 是怎样的逻辑呢? 我们来看下CreateModelMixin 的源码 上面的错误查看源码中CreateMod
阅读全文
摘要:首先用户注册 实际上就是在 userprofile 表中新增一条记录,因此我们的view 还是继承mixin 里面的CreateModelmixin 我们分析注册功能,其实就是一个表单的提交,前端post过来三个参数 1、手机号 2、验证码 3、密码 那么我们要验证前端提交过来的这些参数,那么就要单
阅读全文
摘要:首先我之前是有定义一张表专门用来记录手机验证码的 第二步: 我们来写视图函数 viewset 思路逻辑:1、验证前端传过来的手机号是否已注册 2、验证手机号是否正确(正则表达式) 3、获取验证码的频率控制(60s) 获取验证码其实就是在数据库里面新增一条记录,因此我们的viewset 要继承mixi
阅读全文
摘要:发送短信验证码 是要使用第三方服务的,运营商是不可能提供对外的个人发送短信服务功能,我们本身也没有能力去发送验证码,云片网是目前提供这种服务使用率较高的服务商之一 我们先来看下云片网国内单条发送短信的api 根据api 写了一个脚本,这个appkey 我还没申请 如何使用云片网发送短信? 1、首选要
阅读全文
摘要:自定义 用户认证类,记得之前在mxonline 里面做过, 主要思路是: 第一步:在seeting 里面设置自定义的backends 第二步:在user views 里面写视图函数 自定义用户认证函数要继承ModelBackend,并且要重写 authenticate 方法 打断点验证下用户登录 是
阅读全文
摘要:查看前端Vue 源码 登录的request url 是这样的 我们后端是这样的 这样请求的url 不统一,作为后端我们就要改 请求的url ,一般登录都是用的login login Vue 查看登录的逻辑 登录成功后,我们打开页面信息看到,Vue 里面已经有name 和token了 setinfo
阅读全文
摘要:github 上面有提供开源的第三方插件 https://github.com/GetBlimp/django-rest-framework-jwt 中文的使用文档: http://getblimp.github.io/django-rest-framework-jwt/ 第一步: 安装:pip i
阅读全文
摘要:http 是一种无状态的协议 这里无状态怎么理解: 前后两次请求它不知道这是同一个人 还是不同的人请求的 传统的认证模式:采用session 和cookie结合的方式 前后端分离的传统:用户信息生成token,token和对应的ID 保存到数据库中。我们django rest framwork 的
阅读全文
摘要:我们在setting 里面配置认证类 是一个全局的,这个auth 类会对token 进行验证,如果验证失败了会抛出上面源码中的异常 但是有的接口,比如获取首页,商品列表页 是不需要用户 token的,因此这种全局的配置是不行的,后端的解决方案: 将 token 认证拿到 view 中来做 以商品列表
阅读全文
摘要:setting中注册的middleware会将用户request的数据经过这些middlware中有process_request方法和process_response方法注册进入。 当用户的request进入view之前会将这些process_request通通调用一遍 如果用户post过来的是s
阅读全文