django2.2 结合 vue.js 开发

Posted by walikrence on July 27, 2019

django2.2 结合 vue.js 开发

最近在用django开发后端,配合同学的vue.js前端。没用过vue.js 搜啦下教程终于解决啦。

增加中间件


'corsheaders.middleware.CorsMiddleware',
CORS_ORIGIN_ALLOW_ALL = True

完成后setting.py长这样

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

编译前端代码

进入前端文件夹 新建一个文件vue.config.js

module.exports = {
	// 指定`build`时,在静态文件上一层添加static目录
	assetsDir: 'static',
};

编译代码

npm  install
npm run build

得到啦dist文件夹

配置路径

'DIRS': ['dist'],

配置后setting长这样

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': ['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',
            ],
        },
    },
]

配置url

我们这里直接配置首页为localhost

from django.views.generic import TemplateView
path('',  TemplateView.as_view(template_name="index.html")),

配置后urls.py长这样

from django.contrib import admin
from django.urls import path
from django.views.generic import TemplateView

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',  TemplateView.as_view(template_name="index.html")),
]

配置静态文件

在setting.py末尾添加


# Add for vuejs
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "dist/static"),
]

启动服务器

python3 manage.py runserver 8765

访问网站

点我


终于部署好啦,现在可以开始愉快的按照API文档写数据交互啦