# online-store **Repository Path**: hhh123252/online-store ## Basic Information - **Project Name**: online-store - **Description**: vue 前端部分 使用Vue.js完成前端,后端采用 Django REST Framework  遵循restful api要求实现各个接口,利用Json Web token实现用户认证,利用pycharm线上调试支付宝支付接口,实现支付功能,利用Django social 实现微博微信QQ三方登录。设置Torottling 实现访问限制初步防爬, 利用docker搭建sentry错误日志管理系统,使用Drf-extensions缓存页面到Redis加速下次访问。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2020-07-02 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README --- title: vue.js+Django tags: 2018-1-31 grammar_cjkRuby: true --- git.oschaina.net coding.net vue.js devtools webstorm 和pycharm同一家 nodejs npm 包管理命令 cnpm 淘宝镜像 node_models 三方依赖包 cnpm install cnpm run dev 开发文档中 还要安装 pip install markdown django-filter ![enter description here][1] 设置虚拟环境的目录 设置数据库引擎 用于第三方登录 排序集第一个 ![enter description here][2] ![enter description here][3] 豆瓣源 安装mysqlclinet 替代 MySql-python python3 Windows![ 专用包][4] python3 没有uncode ![enter description here][5] 自关联 ![enter description here][6]![enter description here][7] ![enter description here][8]对于三方应用 不清楚user 用此方法 用setting里设置的user】 记录 migration表 ![enter description here][9] 删表 删记录 xadmin 到处Excel ![enter description here][10] ![enter description here][11]名称 app 用路径.config ![enter description here][12] 富文本编辑器在xadmin中设置 python脚本导入数据 写成py文件 不用sql方便修改名称 单独运行model 先初始化 import放在下面 ![enter description here][13] 数据处理![enter description here][14] 静态文件 ![enter description here][15] 把增删改查的动作 变成 名称资源 webpack 变成一个js vuex 组件通讯 加入购物车 vue-router组件跳转 而不是后台转 路径组件关联 axios 替代ajax 不用导入jQuery ES6 语法 babel 转ES5 兼容 ![enter description here][16] 图片和data没序列号 ![enter description here][17] 直接全部序列化 ![enter description here][18] 看报错 ![enter description here][19] 一定要去掉截止$符号 serializer 类似与form se转model为json form转model为html 表单验证功能用 都是序列号 json 加入外键 ![enter description here][20] 5-7 view mixin 进阶 变化 ![enter description here][21] ![enter description here][22] ![enter description here][23] ![enter description here][24] 加i 忽略大小写的like 跨域1 前端npm 2 设置服务器 Django-cors-headers 用户登录 ![enter description here][25] 获取token ![enter description here][26] 火狐插件![enter description here][27] 先post账目密码 得到token token放在头文件 1存在数据库不适合分布式2没有过期时间 、JWT认证模式 ![enter description here][28] 自定义用户认证模式 加入手机号和邮箱登录 ![enter description here][29] ![enter description here][30] 前端全局配置token 则后端不能在setting加全集middlewave 对于开发数据 ![enter description here][31] ![enter description here][32] form和model form 用 一分钟 ![enter description here][33] ![enter description here][34]限制与变化 取数据`(mobile=self.initial_data["username"]).order_by("-add_time") ` ``` class Meta: model = User fields = ("username", "code", "mobile", "password") ``` 控制post输入数据 ![enter description here][35] 自定义验证` validators=[UniqueValidator(queryset=User.objects.all(), message="用户已经存在")` ![enter description here][36] ![enter description here][37] 使用信号量时 要在app里写一个函数 post_save 在新用户save之前 加密密码 设置token等 代码分离性比较好 获取当前用户 设置默认的用户 ![enter description here][38] 删除 ![enter description here][39] 联合唯一 数据库 model![enter description here][40] serializers ![enter description here][41] model form 通的 400 添加消息 Permission 权限 也是是否登录的验证 ![enter description here][42] ![enter description here][43] 把url后面的id 改成自己设置的字段 ![enter description here][44] 本地服务器登录 本地解密 ![enter description here][45] 文档说明注释 ![enter description here][46] vendeor 三方库 manifest 阻止三方库更新 同一个viewset 做注册 查询 权限区分![enter description here][47] 动态获取 ![enter description here][48] 时间格式化![enter description here][49] 图片相关 不设置路径就默认在media里面 ![enter description here][50] 提交文件是加入 parsers ![enter description here][51] ![enter description here][52] 一个城市填充的插件23333![enter description here][53] 购物车 重新Serializer字段 ![enter description here][54] 重写create方法 modelserializer 里面有载入update和delete方法 serializer里面则需要再重载 重写 订单详细中的goods信息 对字段进行填充 动态serlizer 还有引用问题 ![enter description here][55]要配置一个ip的 ![enter description here][56] 秘钥处理下![enter description here][57] 支付模块 签名源码 同步接受也异步接受的接口 ![enter description here][58] 支付宝会一直发结果 直到返回了 success ![enter description here][59] ![enter description here][60] 支付宝页面返回 把vue加入到Django 关系到最后的部署方式 ![enter description here][61] 后端调整技巧 ![enter description here][62] 前端的话 只是用支付宝的一张图片 另一个接口 图片在vue页面里面 serializers里面再写一个serializers并且返回json时 其中是不会自己带url的 要和源码一样加入request ![enter description here][63] serializers嵌套serializers 点击和收藏是 都会修改点击量和收藏量 1是重写 create和res 在里面加入num+=1 ![enter description here][64] 2 用信号量 ![enter description here][65] 更新操作 取原来的数据做对比 ![enter description here][66] drf缓存 ![enter description here][67] 放在第一个 不同的查询类型在redis里面是不同的key html格式和json格式也是不同的key 限流 ![enter description here][68] Anon 匿名 ip User token 429 ![enter description here][69] 取ip 第三方 social Django ![enter description here][70] Django 某些应用不适配mysql默认engine ![enter description here][71] 两个url 对应两个接口 第二个还会完成一些后续操作 ![enter description here][72] 三方包默认的是Django的session登录机制 会建立一个账户用session登录 pip安装后还要把源码移动到ex_app里 改造源码![enter description here][73] 错误日志 sentry ![enter description here][74] 开始接触doker啦 进入sentry github官网 ![enter description here][75] 中间需要先clone 包到跟目录 阿里云发送邮件bug 先设置邮箱 ![enter description here][76] 补上这个参数 ![enter description here][77] 阿里云25端口 换成了更安全的465 ssl端口 sina不支持ssl sentry 暂时不支持ssl docker worker cron web多次运行坑 收到结束在以此启动 [1]: ./images/1517375340434.jpg [2]: ./images/1517375617833.jpg [3]: ./images/1517375768431.jpg [4]: ./images/1517376014114.jpg [5]: ./images/1517379595860.jpg [6]: ./images/1517384558078.jpg [7]: ./images/1517384672708.jpg [8]: ./images/1517387633092.jpg [9]: ./images/1517389261040.jpg [10]: ./images/1517390184795.jpg [11]: ./images/1517390848675.jpg [12]: ./images/1517390988372.jpg [13]: ./images/1517487156639.jpg [14]: ./images/1517487585070.jpg [15]: ./images/1517488426674.jpg [16]: ./images/1517492935170.jpg [17]: ./images/1517493116492.jpg [18]: ./images/1517493343306.jpg [19]: ./images/1517531589851.jpg [20]: ./images/1517540096512.jpg [21]: ./images/1517541883769.jpg [22]: ./images/1517543205352.jpg [23]: ./images/1517545702894.jpg [24]: ./images/1517546308417.jpg [25]: ./images/1518346327054.jpg [26]: ./images/1518346588257.jpg [27]: ./images/1518346824440.jpg [28]: ./images/1518404067022.jpg [29]: ./images/1518405666238.jpg [30]: ./images/1518405996670.jpg [31]: ./images/1518402907227.jpg [32]: ./images/1518418232476.jpg [33]: ./images/1518419089956.jpg [34]: ./images/1518424272862.jpg [35]: ./images/1518425152406.jpg [36]: ./images/1518428628990.jpg [37]: ./images/1518428635888.jpg [38]: ./images/1518435326543.jpg [39]: ./images/1518435906735.jpg [40]: ./images/1518436038631.jpg [41]: ./images/1518436255565.jpg [42]: ./images/1518436714436.jpg [43]: ./images/1518436719786.jpg [44]: ./images/1518438956473.jpg [45]: ./images/1518439490453.jpg [46]: ./images/1518441059621.jpg [47]: ./images/1518486585858.jpg [48]: ./images/1518486755035.jpg [49]: ./images/1518489094791.jpg [50]: ./images/1518489880783.jpg [51]: ./images/1518489945382.jpg [52]: ./images/1518489901816.jpg [53]: ./images/1518496145561.jpg [54]: ./images/1518498197219.jpg [55]: ./images/1518522978113.jpg [56]: ./images/1518523274197.jpg [57]: ./images/1518525786321.jpg [58]: ./images/1518528829626.jpg [59]: ./images/1518531967354.jpg [60]: ./images/1518532233414.jpg [61]: ./images/1518533015869.jpg [62]: ./images/1518532991927.jpg [63]: ./images/1518574654640.jpg [64]: ./images/1518575660078.jpg [65]: ./images/1518575667632.jpg [66]: ./images/1518577732486.jpg [67]: ./images/1518578611265.jpg [68]: ./images/1518586307856.jpg [69]: ./images/1518586536618.jpg [70]: ./images/1518589428937.jpg [71]: ./images/1518590591825.jpg [72]: ./images/1518590878791.jpg [73]: ./images/1518592097500.jpg [74]: ./images/1518594455661.jpg [75]: ./images/1518594355074.jpg [76]: ./images/1518600651880.jpg [77]: ./images/1518600717584.jpg