Skip to content

Waka758/Vue-Django-Shop-Website

 
 

Repository files navigation

Django REST framework+Vue (生鲜超市后端代码)


python3 django3.0.0

前端:

  • Vue

后端:

  • Python 3.6, 3.7 and 3.8
  • Django 1.11, 2.1, 2.2 and 3.0
  • Django Rest Framework 3.9, 3.10 and 3.11

提升与改进

  1. 使用最新的django-rest-framework-simplejwt代替django-rest-framework-jwt,由于原作者已不再维护该项目。
  2. 加入腾讯云短信发送相关代码
  3. 配合django-rest-framework-simplejwt修复第三方登录时,用户前端显示bug。
  4. 修复alipay密钥存储格式导致的Incorrect padding问题
  5. 修复热门搜索接口
  6. 可以切换数据库
  7. 修复部分前端问题。

项目资源

Vue前端代码
Django后端代码

项目视频与原版文件: 链接:https://pan.baidu.com/s/1elQ0DJ-b0hB6W4ihJcK3mQ 密码:ndzt


项目内容

权限和认证

  • Authentication用户认证设置
  • 动态设置Permission、Authentication
  • Validators实现字段验证

序列化和表单验证

  • Serializer
  • ModelSerializer
  • 动态设置Serializer

支付、登录、注册

  • Json Web Token方式登录
  • 手机注册 / 支付宝支付
  • 第三方登录

View实现REST API

  • Apiview方式实现API接口 / GenericView方式实现API接口
  • Viewset和Router方式实现API接口和URL配置
  • Django_filter、SearchFilter、OrderFilter、分页 / 通用Mixins

进阶开发

  • Django REST framework部分核心源码解读
  • 文档自动化管理 / Django REST framework的缓存
  • Throttling对用户和IP进行限速

Vue

Vue技术选型分析 API后端接口数据填充到Vue组件模板 Vue代码结构分析

Django

  • Django Mirgrations原理
  • Django信号量
  • Django从请求到响应的完整过程
  • 独立使用Django的Model

实战内容

  1. Vue+ Django REST framework前后端分离的全栈开发
  2. Django REST framework的功能实现与核心源码分析
  3. Sentry完成线上系统的错误日志的监控和告警
  4. 第三方登录和第三方支付宝的支付集成
  5. 本地调试远程服务器代码技巧

环境搭建

虚拟环境搭建

  1. 环境变量设置 Mac 无需配置,自动保存的./.virtualenvs/中 Win 桌面新建文件夹Envs
    新建环境变量:以后创建虚拟环境会自动保存到这个路径

  2. 安装

pip install virtualenv

# Mac
pip install virtualenvwrapper # 并添加相应的环境变量到./.bash_profile中
workon #查看有哪些虚拟环境
workon VueDjango #进入创建的虚拟环境
deactivate #退出虚拟环境
activate #激活虚拟环境

# Win
pip install virtualenvwrapper\-win
mkvirtualenv VueDjango #创建虚拟环境
workon #查看有哪些虚拟环境
workon VueDjango #进入创建的虚拟环境
deactivate.bat #退出虚拟环境
activate.bat #激活虚拟环境
  1. 数据库选择 请选择其中一种数据库,新手推荐使用SQLite先运行,后面再数据同步与切换
# 数据库选择SQLite
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

# 数据库选择MYSQL
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'vuedjango',
        'USER': 'root',
        'PASSWORD': 'password',
        'HOST': '127.0.0.1',
        "OPTIONS": {"init_command": "SET default_storage_engine=INNODB;"}
    }
}

Vue环境搭建

国内:

  1. node.js https://nodejs.org/

  2. cnpm

npm install -g cnpm --registry=https://registry.npm.taobao.org
  1. 更改./src/api/api.js里的接口地址
let local_host = 'http://127.0.0.1:8000';
  1. 运行
cnpm run dev

国外:

  1. node.js https://nodejs.org/

  2. 安装依赖

npm install
  1. 运行
npm run dev

数据库部署

安装MySQL后在数据库中创建名为vueshop库,用下面代码导入SQL即可。

cd Vue-Django-Shop-Website/db_tools/
python import_category_data.py
python import_goods_data.py

配置与可选配置

# 腾讯云短信设置
TENCENT_SECRET_ID = ''
TENCENT_SECRET_KEY = ''

# 云片网设置
APIKEY = ''

# 配置redis缓存
CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
            "PASSWORD": "password"
        }
    }
}

SOCIAL_AUTH_WEIBO_KEY = ''
SOCIAL_AUTH_WEIBO_SECRET = ''
SOCIAL_AUTH_QQ_KEY = ''
SOCIAL_AUTH_QQ_SECRET = ''
SOCIAL_AUTH_WEIXIN_KEY = ''
SOCIAL_AUTH_WEIXIN_SECRET = ''

# 引入本地配置
try:
    from .local_settings import *
except ModuleNotFoundError as e:
    pass

# sentry初始化
sentry_sdk.init(
    dsn="You DNS address",
    integrations=[DjangoIntegration()],

    # If you wish to associate users to errors (assuming you are using
    # django.contrib.auth) you may enable sending PII data.
    send_default_pii=True
)

参考文档

Django3.0: https://docs.djangoproject.com/zh-hans/3.0/
Django REST framework: https://www.django-rest-framework.org/
DRF-extensions: http://chibisov.github.io/drf-extensions/docs/
django-rest-framework-simplejwt: https://github.com/davesque/django-rest-framework-simplejwt
django-social-auth: https://github.com/omab/django-social-auth
xadmin: https://xadmin.readthedocs.io/en/docs-chinese/
支付宝沙箱:https://openhome.alipay.com/platform/appDaily.htm
腾讯云发送短信API: https://cloud.tencent.com/document/api/382/38778
django-redis 中文文档: https://django-redis-chs.readthedocs.io/zh_CN/latest/#
Python Social Auth: https://python-social-auth.readthedocs.io/en/latest/
redis数据库安装参考: https://www.jianshu.com/p/035be70daf2d

About

A Vue.js frontend and Django REST framework backend shop website. (生鲜超市后端代码)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.9%
  • Other 0.1%
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy