Django+VUE交互——第三部分
作者:互联网
五、整合 django 和 vue.js 前端
目前我们已经分别完成了 django 后端和 vue.js 前端工程的创建和编写,但实际上它们是运行在各自的服务器上,和我们的要求是不一致的。
在前端工程目录下,输入 npm run build
,如果项目没有错误的话,就能够看到所有的组件、css、图片等都被 webpack 自动打包到 dist 目录下了,里面有一个 index.html 和一个文件夹 static。
修改 djangovue 下的 urls ,使用通用视图创建最简单的模板控制器,访问 『/』时直接返回 index.html
from django.contrib import admin from django.urls import path, include from django.views.generic import templateview urlpatterns = [ path('admin/', admin.site.urls), path('api/', include('backend.urls')), path(r'', templateview.as_view(template_name="index.html")), ]
配置 django 项目的模板搜索路径。上一步使用了 django 的模板系统,所以需要配置一下模板使 django 知道从哪里找到 index.html。修改 settings.py 文件,如下:
templates = [ { 'backend': 'django.template.backends.django.djangotemplates', # 'dirs': [os.path.join(base_dir, 'templates')], 'dirs': [os.path.join(base_dir, 'frontend/dist')],
# frontend 为前端项目文件名称 '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', ], }, }, ]
配置静态文件的搜索路径。
STATICFILES_DIRS = [(os.path.join(BASE_DIR,'frontend/dist/static'))]
配置完成,启动 django 服务 python manage.py runserver
,就能够看到我们的前端页面在浏览器上展现:
此时服务的端口已经是 django 服务的 8000 而不是 node 服务的 8080 了,说明我们已经成功通过 django 集成了 vue 前端工程。
标签:index,VUE,processors,前端,django,context,path,Django,交互 来源: https://www.cnblogs.com/like1824/p/16481707.html