【Vue+DRF生鲜电商】01.课程结构介绍,开发环境搭建
2019-04-21 本文已影响23人
吾星喵
欢迎访问我的博客专题
源码可访问 Github 查看
本文学习 boddy老师慕课网视频:https://coding.imooc.com/class/131.html
掌握技术和课程构成
掌握的技术:
- Vue + Django Rest Framework前后端分离
- Restful API开发流程
- Django Rest Framework功能实现
- Sentry线上系统错误日志监控告警
- 第三方登录
- 支付宝支付的集成
- 本地调试远程服务器代码的技巧
课程构成:
- Vue前端项目
- API接口
- Vue组件
- Vue的项目组织结构分析
- Django Rest Framework前后台功能
- Restful API开发全流程
- 通用view实现rest api接口
-
ApiView
方式实现api -
GenericView
方式实现api -
Viewset
和router
方式实现api接口和url配置 -
django_filter
、SearchFilter
、OrderFilter
、分页 - 通用
mixins
-
- 权限和认证
-
Authentication
用户认真设置 - 动态设置
permission
、Authentication
-
Validators
实现字段验证
-
- 序列化和表单验证
Serializer
ModelSerilizer
- 动态设置
serializer
- 支付、登录和注册
- json web token实现登录
- 手机注册
- 支付宝支付
- 第三方登录
- 进阶开发
- Django Rest Framework部分核心源码解读
- 文档自动化管理
- Django Rest Framework缓存
- 通过Throttle对用户和ip进行限速
- Xadmin后台管理系统(本文未使用)
- 开发中常见问题
- 本地系统不能重现的bug,只能在线上遇到
- api接口出错不能及时的发现,或者难以找到错误栈
- api文档管理问题,不同人使用不同的风格去写文档,难以统一
- 大量url配置造成url配置越来越多难以维护
- 接口不及时去更新文档,对方不知道如何去测试接口,但写文档会花费大量的时间去维护
- 防止爬虫,针对api的访问频率做限制,比如一分钟、一小时或者一天用户的访问频率限制问题
- 某些页面将数据放入缓存,加速某些api的访问速度,商品分类数据变动小可以放到缓存中
- 常见问题解决方案
- pycharm远程调试服务器代码,可以调试支付、第三方登录,还可以调试远程服务器的代码来重现服务器线上的bug
- 通过Docker发件sentry错误日志监控系统,不能可以得到线上的错误栈,还能及时在系统发生错误时收到邮件通知
- Django Rest Framework文档自动化管理,以及url的注册管理功能,会节省写文档的时间
- Django Rest Framework文档功能能直接在文档中测试将诶口、自动生成的js接口代码、shell测试代码和python测试代码
- Django Rest Framework提供的throttle来对api进行访问频率限制
- 引入第三方框架来设置某些api的缓存
- Django进阶知识
- Django migrations原理
- Django信号量
- Django从请求到响应的完成过程
- 独立使用Django的Model
- Vue知识点
- Vue技术选型分析
- API后端接口数据填充到Vue组件模板
- Vue代码接口分析
开发环境搭建
下载安装Pycharm和Python3。
安装的pip库
pip install -i https://pypi.douban.com/simple django djangorestframework markdown coreapi django-filter django-crispy-forms django-guardian django-ckeditor pillow django-cors-headers
vue环境
下载安装Webstorm、nodejs(安装完后使用node --version
测试)、cnpm
npm安装特别慢,所以安装cnpm
访问 https://npm.taobao.org/ 可以看到安装说明
npm install -g cnpm --registry=https://registry.npm.taobao.org
复制vue源码文件到自定义的目录

使用命令安装依赖包
λ cd D:\LR@ProjectsSync\OneDrive\PycharmProjects\VueOnlineFreshSupermarket
D:\LR@ProjectsSync\OneDrive\PycharmProjects\VueOnlineFreshSupermarket (webpack-test@1.0.0)
λ cnpm install
安装时会在项目目录下创建一个node_modules
文件夹,里面都是所有第三方包
运行前端项目
λ cnpm run dev
如果在不同的电脑运行这个,启动可能会报错,这时候只需要删除node_modules
文件夹,然后运行cnpm install
重新安装第三方包,最后cnpm run dev
运行即可。
虚拟环境
使用PyCharm新建虚拟环境,
PS C:\Users\Admin> mkvirtualenv OnlineFreshSupermarket
Using base prefix 'd:\\apps\\python\\python36'
New python executable in C:\Users\Admin\Envs\OnlineFreshSupermarket\Scripts\python.exe
Installing setuptools, pip, wheel...done.
PS C:\Users\Admin> workon
Pass a name to activate one of the following virtualenvs:
==============================================================================
OnlineFreshSupermarket
创建Django项目

安装DRF,访问 https://www.django-rest-framework.org/ 可以看到介绍
>pip install djangorestframework
>pip install markdown django-filter
修改Django项目 settings.py 添加drf应用

时间设置
# LANGUAGE_CODE = 'en-us'
# 语言改为中文
LANGUAGE_CODE = 'zh-hans'
# TIME_ZONE = 'UTC'
# 时区改为上海
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
# USE_TZ = True
# 数据库存储使用时间,True时间会被存为UTC的时间
USE_TZ = False
添加drf路由

同步数据库,创建表,创建管理员
manage.py@DjangoOnlineFreshSupermarket > makemigrations
manage.py@DjangoOnlineFreshSupermarket > migrate
# 创建管理员
manage.py@DjangoOnlineFreshSupermarket > createsuperuser
访问 http://127.0.0.1:8000/admin/ 就可以使用创建的帐密登录后台

创建users应用
manage.py@DjangoOnlineFreshSupermarket > startapp users
创建apps包,用于放置所有的应用。将users应用移动到apps包中。右键apps---Mark Directory as---Sources Root
创建db_tools包,用于放置项目的脚本等

将apps加入项目的搜索路径之下,修改 settings.py 添加
import os
import sys
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, BASE_DIR)
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
创建其他app
manage.py@DjangoOnlineFreshSupermarket > startapp goods
manage.py@DjangoOnlineFreshSupermarket > startapp trade
manage.py@DjangoOnlineFreshSupermarket > startapp user_operation
然后将这三个应用都拉入apps包
