django elementui
Django 与 ElementUI 的集成方法
Django 是一个强大的 Python Web 框架,而 ElementUI 是一个基于 Vue.js 的流行前端组件库。将两者结合可以快速构建现代化的 Web 应用。
前端项目初始化
使用 Vue CLI 创建一个新的前端项目,并集成 ElementUI:
vue create frontend
cd frontend
vue add element
这会安装 ElementUI 并完成基本配置。
Django 后端配置
在 Django 项目中配置静态文件和模板目录:
# settings.py
STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'frontend/dist/static')]
TEMPLATES = [
{
'DIRS': [os.path.join(BASE_DIR, 'frontend/dist')],
}
]
构建前端资源
在前端项目中运行构建命令:
npm run build
这会在 frontend/dist 目录生成静态文件,Django 可以服务这些文件。

创建 Django 视图
编写一个简单的视图来渲染前端页面:
from django.views.generic import TemplateView
class HomeView(TemplateView):
template_name = 'index.html'
配置 URL 路由
将视图映射到 URL:
from django.urls import path
from .views import HomeView
urlpatterns = [
path('', HomeView.as_view(), name='home'),
]
前后端数据交互
使用 Django REST framework 创建 API 接口:

# serializers.py
from rest_framework import serializers
from .models import MyModel
class MyModelSerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
fields = '__all__'
# views.py
from rest_framework import viewsets
from .models import MyModel
from .serializers import MyModelSerializer
class MyModelViewSet(viewsets.ModelViewSet):
queryset = MyModel.objects.all()
serializer_class = MyModelSerializer
前端调用 API
在前端使用 axios 调用 Django API:
import axios from 'axios'
axios.get('/api/mymodel/')
.then(response => {
this.data = response.data
})
跨域问题解决
安装 django-cors-headers 处理跨域请求:
pip install django-cors-headers
配置中间件:
# settings.py
INSTALLED_APPS = [
'corsheaders',
]
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
]
CORS_ORIGIN_ALLOW_ALL = True
部署注意事项
生产环境中,建议:
- 使用 WhiteNoise 服务静态文件
- 配置 Nginx 作为反向代理
- 启用 Gzip 压缩
- 设置合适的缓存策略
这种集成方式充分利用了 Django 的后端能力和 ElementUI 的前端表现力,适合开发管理后台等应用。






