項目的目錄結構:
?-HeartFailure
??????? |-- apps
??????? ??????? |--user
??????? |--HeartFailure
??????? |-- static
??????? |--manage.py
一、django項目相關的
1、命令行中創建django項目
#1、切換到指定的虛擬環境中
workon my_drf#2、該虛擬環境已經安裝好django和rest_framework了
django-admin startproject HeartFailure
?2、在項目中創建apps包,所有的應用都放到這里
3、切換到apps目錄下,創建user應用
python ../manage.py startapp user
4、注冊user應用
a.由于user應用是放到了apps包中了,需要進行修改:apps/user/apps.py,其中的name='apps.user'
b.注冊應用
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','apps.user.apps.UserConfig',#用戶管理
]
二、drf純凈版配置
settings.py
INSTALLED_APPS = [# 'django.contrib.admin', #1、后臺管理注銷# 'django.contrib.auth', #2、django認證注銷# 'django.contrib.contenttypes',#3、注銷# 'django.contrib.sessions',#4、session會話功能注銷# 'django.contrib.messages',#5、注銷'django.contrib.staticfiles', #靜態資源,后續靜態資源可以由nginx代理'rest_framework',#使用Response時,會需要某些靜態資源'apps.user.apps.UserConfig',#用戶app
]MIDDLEWARE = ['django.middleware.security.SecurityMiddleware',# 'django.contrib.sessions.middleware.SessionMiddleware', #1、session中間件注銷'django.middleware.common.CommonMiddleware',# 'django.middleware.csrf.CsrfViewMiddleware', #2、csrf校驗注銷# 'django.contrib.auth.middleware.AuthenticationMiddleware',#3、認證中間件注銷# 'django.contrib.messages.middleware.MessageMiddleware', #4、注銷'django.middleware.clickjacking.XFrameOptionsMiddleware',
]TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [os.path.join(BASE_DIR, 'templates')],'APP_DIRS': True,'OPTIONS': {'context_processors': ['django.template.context_processors.debug','django.template.context_processors.request',# 'django.contrib.auth.context_processors.auth', #1、注銷掉# 'django.contrib.messages.context_processors.messages', #2、注銷掉],},},
]STATIC_URL = '/static/'
#設置靜態路由搜索的的目錄,開發階段可以使用,上線階段用nginx來代理即可
STATICFILES_DIRS=[os.path.join(BASE_DIR,'static')]#drf的配置,全局配置
REST_FRAMEWORK = {#在認證時,對于沒有登錄的用戶會給request.user賦值匿名用戶,這里設置賦值成None,【純凈版必須設置】'UNAUTHENTICATED_USER':None,
}
三、簡單的nginx配置
#心衰系統的本地開發
server {listen 8008;server_name 127.0.0.1;#前端location / {root C:/APPS/html;index index.html;}#后端location /api/ {proxy_pass http://127.0.0.1:8005/;#配置nginx支持websocketproxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";#websocket三個超時時間,有默認值proxy_read_timeout 600s;proxy_connect_timeout 30s;proxy_send_timeout 60s;}#nginx代理靜態資源location /api/static {alias C:\data\project\HeartFailure\static;}}
總結:純凈版的drf項目,拋棄了django的后臺管理,django的認證機制,會話機制等等。相對來說,系統允許速度會快一些。