前端-->nginx-->uwsgi-->django-->mysql/redis
动静分离-->静态文件
集群:是将一个项目放在多个服务器上
分布式:是将一个项目拆分成多个部分放在不同的服务器上
cookie,session,token区别
cookie: 存储在用户本地终端上的数据, 服务器生成,发送给浏览器,浏览器保存,下次请求同一网站再发送给服务器。
session: 代表服务器与浏览器的一次会话,这个过程是连续的,也可以时断时续的。cookie中存放着一个sessionID。请求时会发送这个ID。session因为请求(request对象)而产生。session是一个容器,可以存放会话过程中的任何对象。session的创建和使用总在服务端,而浏览器从来都没得到过session对象。Session 是一种HTTP存储机制,目的是为无状态的HTTP提供的持久机制。
token: 是用户身份的验证方式,最简单的token组成:uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名)。若存在第三方,用token,不用session。
终端
建虚拟环境 mkvirtualenv -p D:python36python.exe VueShop
进入虚拟环境 workon VueShop
退出虚拟环境 deactivate
删除虚拟环境 rmvirtualenv VueShop
在虚拟环境中安装 pip install djangorestframework
pip list 可以查看虚拟环境中有哪些配置
虚拟环境中安装django pip install -i https://pypi.douban.com/simple django pip install markdown
pip install django-filter
在pycharm中创建一个新的项目,使用新建的虚拟环境,设置数据库
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'shop', 'USER': 'root', 'PASSWORD': '123', 'HOST': '127.0.0.1', 'OPTIONS': { 'init_command': 'SET storage_engine=INNODB;', 'charset': 'utf8mb4' } } }
配置环境变量
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')) sys.path.insert(0,os.path.join(BASE_DIR, 'extra_apps'))
在终端中安装 pip install mysqlclient 图片时使用pip install -i https://pypi.douban.com/simple pillow
终端
建虚拟环境 mkvirtualenv -p D:python36python.exe VueShop
进入虚拟环境 workon VueShop
退出虚拟环境 deactivate
删除虚拟环境 rmvirtualenv VueShop
在虚拟环境中安装 pip install djangorestframework
pip list 可以查看虚拟环境中有哪些配置
虚拟环境中安装django pip install -i https://pypi.douban.com/simple django pip install markdown
pip install django-filter
在pycharm中创建一个新的项目,使用新建的虚拟环境,设置数据库
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'shop', 'USER': 'root', 'PASSWORD': '123', 'HOST': '127.0.0.1', 'OPTIONS': { 'init_command': 'SET storage_engine=INNODB;', 'charset': 'utf8mb4' } } }
配置环境变量
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')) sys.path.insert(0,os.path.join(BASE_DIR, 'extra_apps'))
在终端中安装 pip install mysqlclient 图片时使用pip install -i https://pypi.douban.com/simple pillow