M(Django) + C(Django) + MVVM (Vue.js) = M + MVVM + C = MMVVMChtml
Django3.5前端
Mysqlvue
Npm(node.js默认安装npm)node
django-admin startproject ulb_manager cd ulb_manager python manage.py startapp backend
项目结构如上python
vue-init webpack frontend
在cmd命令提示符里输入上面命令(ulb_manager项目文件夹中)webpack
cd frontend npm install npm run build
进入项目前端文件夹中,安装npm(建议不要npm所有安装,包很大,速度慢)web
若是npm install 过程当中出现卡顿,长时间安装不上的状况,建议npm使用cnpm命令代替sql
cnpm不影响原有npm命令,只不过安装过程当中能够走npm包在国内的镜像,速度快不少。npm
npm install -g cnpm –registry=https://registry.npm.taobao.org
-g是说全局安装,这样可在任何目录下进行安装django
from django.conf.urls import url,include from django.contrib import admin from django.views.generic import TemplateView import backend.urls urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^$', TemplateView.as_view(template_name="index.html")), url(r'^api/', include('backend.urls', namespace='api')) ]
找到项目根 urls.py (即ulb_manager/urls.py),引入django的一些库,访问/时返回index.html
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', # 'DIRS': [], 'DIRS': ['frontend/dist'], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]
settings.py (ulb_manager/settings.py),修改templates如上
# Add for Vue.js STATICFILES_DIRS = [ os.path.join(BASE_DIR, "frontend/dist/static"), ]
settings.py (ulb_manager/settings.py),增长设置静态文件路径
此时访问首页能够看见VUE配置成功的显示
npm run dev
pip install django-cors-headers
Django层注入header,安装
MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] CORS_ORIGIN_ALLOW_ALL = True
配置,注意中间件加载顺序
本章节还未测试,请看参考文档:
其余参考文档: