您现在的位置是: 网站首页 >Django >Vue+Django REST framework前后端分离生鲜电商 Django

【Vue+DRF生鲜电商】01.课程结构介绍,开发环境搭建

admin2019年4月21日 11:18 Django | Python | Vue 2218人已围观

Vue+Django REST framework前后端分离生鲜电商简介 Vue+Django REST framework 打造前后端分离的生鲜电商项目(慕课网视频)。 Github地址:https://github.com/xyliurui/DjangoOnlineFreshSupermarket ; Django版本:2.2、djangorestframework:3.9.2。 前端Vue模板可以直接联系我拿。

本文学习 boddy老师慕课网视频:https://coding.imooc.com/class/131.html # 掌握技术和课程构成 掌握的技术: - Vue + Django Rest Framework前后端分离 - Restful API开发流程 - Django Rest Framework功能实现 - Sentry线上系统错误日志监控告警 - 第三方登录 - 支付宝支付的集成 - 本地调试远程服务器代码的技巧 课程构成: 1. Vue前端项目 1. API接口 2. Vue组件 3. Vue的项目组织结构分析 2. Django Rest Framework前后台功能 1. Restful API开发全流程 2. 通用view实现rest api接口 1. `ApiView`方式实现api 2. `GenericView`方式实现api 3. `Viewset`和`router`方式实现api接口和url配置 4. `django_filter`、`SearchFilter`、`OrderFilter`、分页 5. 通用`mixins` 3. 权限和认证 1. `Authentication`用户认真设置 2. 动态设置`permission`、`Authentication` 3. `Validators`实现字段验证 4. 序列化和表单验证 1. `Serializer` 2. `ModelSerilizer` 3. 动态设置`serializer` 4. 支付、登录和注册 1. json web token实现登录 2. 手机注册 3. 支付宝支付 4. 第三方登录 5. 进阶开发 1. Django Rest Framework部分核心源码解读 2. 文档自动化管理 3. Django Rest Framework缓存 4. 通过Throttle对用户和ip进行限速 3. Xadmin后台管理系统(本文未使用) 4. 开发中常见问题 1. 本地系统不能重现的bug,只能在线上遇到 2. api接口出错不能及时的发现,或者难以找到错误栈 3. api文档管理问题,不同人使用不同的风格去写文档,难以统一 4. 大量url配置造成url配置越来越多难以维护 5. 接口不及时去更新文档,对方不知道如何去测试接口,但写文档会花费大量的时间去维护 6. 防止爬虫,针对api的访问频率做限制,比如一分钟、一小时或者一天用户的访问频率限制问题 7. 某些页面将数据放入缓存,加速某些api的访问速度,商品分类数据变动小可以放到缓存中 5. 常见问题解决方案 1. pycharm远程调试服务器代码,可以调试支付、第三方登录,还可以调试远程服务器的代码来重现服务器线上的bug 2. 通过Docker发件sentry错误日志监控系统,不能可以得到线上的错误栈,还能及时在系统发生错误时收到邮件通知 3. Django Rest Framework文档自动化管理,以及url的注册管理功能,会节省写文档的时间 4. Django Rest Framework文档功能能直接在文档中测试将诶口、自动生成的js接口代码、shell测试代码和python测试代码 5. Django Rest Framework提供的throttle来对api进行访问频率限制 6. 引入第三方框架来设置某些api的缓存 6. Django进阶知识 1. Django migrations原理 2. Django信号量 3. Django从请求到响应的完成过程 4. 独立使用Django的Model 7. Vue知识点 1. Vue技术选型分析 2. API后端接口数据填充到Vue组件模板 3. Vue代码接口分析 # 开发环境搭建 下载安装Pycharm和Python3。 ## 安装的pip库 ```bash 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/ 可以看到安装说明 ```bash npm install -g cnpm --registry=https://registry.npm.taobao.org ``` 复制vue源码文件到自定义的目录 ![BLOG_20190421_112544_25](/media/blog/images/2019/04/BLOG_20190421_112544_25.png "博客图集BLOG_20190421_112544_25.png") 使用命令安装依赖包 ```bash λ cd D:\LR@ProjectsSync\OneDrive\PycharmProjects\VueOnlineFreshSupermarket D:\LR@ProjectsSync\OneDrive\PycharmProjects\VueOnlineFreshSupermarket (webpack-test@1.0.0) λ cnpm install ``` 安装时会在项目目录下创建一个`node_modules`文件夹,里面都是所有第三方包 运行前端项目 ```bash λ cnpm run dev ``` 如果在不同的电脑运行这个,启动可能会报错,这时候只需要删除`node_modules`文件夹,然后运行`cnpm install`重新安装第三方包,最后`cnpm run dev`运行即可。 ## 虚拟环境 使用PyCharm新建虚拟环境, ```bash 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项目 ![BLOG_20190421_112619_46](/media/blog/images/2019/04/BLOG_20190421_112619_46.png "博客图集BLOG_20190421_112619_46.png") 安装DRF,访问 https://www.django-rest-framework.org/ 可以看到介绍 ```bash >pip install djangorestframework >pip install markdown django-filter ``` 修改Django项目 settings.py 添加drf应用 ![BLOG_20190421_112631_75](/media/blog/images/2019/04/BLOG_20190421_112631_75.png "博客图集BLOG_20190421_112631_75.png") 时间设置 ```config # 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路由 ![BLOG_20190421_112712_69](/media/blog/images/2019/04/BLOG_20190421_112712_69.png "博客图集BLOG_20190421_112712_69.png") 同步数据库,创建表,创建管理员 ```bash manage.py@DjangoOnlineFreshSupermarket > makemigrations manage.py@DjangoOnlineFreshSupermarket > migrate # 创建管理员 manage.py@DjangoOnlineFreshSupermarket > createsuperuser ``` 访问 http://127.0.0.1:8000/admin/ 就可以使用创建的帐密登录后台 ![BLOG_20190421_112726_23](/media/blog/images/2019/04/BLOG_20190421_112726_23.png "博客图集BLOG_20190421_112726_23.png") 创建users应用 ```bash manage.py@DjangoOnlineFreshSupermarket > startapp users ``` 创建apps包,用于放置所有的应用。将users应用移动到apps包中。右键apps---Mark Directory as---Sources Root 创建db_tools包,用于放置项目的脚本等 ![BLOG_20190421_112735_80](/media/blog/images/2019/04/BLOG_20190421_112735_80.png "博客图集BLOG_20190421_112735_80.png") 将apps加入项目的搜索路径之下,修改 settings.py 添加 ```bash 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 ```bash manage.py@DjangoOnlineFreshSupermarket > startapp goods manage.py@DjangoOnlineFreshSupermarket > startapp trade manage.py@DjangoOnlineFreshSupermarket > startapp user_operation ``` 然后将这三个应用都拉入apps包 ![BLOG_20190421_112750_13](/media/blog/images/2019/04/BLOG_20190421_112750_13.png "博客图集BLOG_20190421_112750_13.png")

很赞哦! (9)

文章交流

  • emoji
3人参与,2条评论
等一轮明月。 2021年12月17日 21:49
写的很好,能提供一下前端吗?我想搭搭看下效果
jackyfzh 2020年7月27日 14:56
博主很厉害,能加个友链吗?
吾星喵 @ jackyfzh 2020年7月27日 15:19
我的首页直接提交你的友链即可

当前用户

未登录,点击   登录

站点信息

  • 建站时间:网站已运行2300天
  • 系统信息:Linux
  • 后台程序:Python: 3.8.10
  • 网站框架:Django: 3.2.6
  • 文章统计:257 篇
  • 文章评论:63 条
  • 腾讯分析网站概况-腾讯分析
  • 百度统计网站概况-百度统计
  • 公众号:微信扫描二维码,关注我们
  • QQ群:QQ加群,下载网站的学习源码
返回
顶部
标题 换行 登录
网站