Django与Vue前后端分离实战:从项目搭建到静态资源集成
本文详细介绍如何在Django框架中集成Vue项目实现前后端分离。内容涵盖Node.js环境配置、Vue CLI安装、项目目录结构设置、Django模板与静态文件路径配置,以及Vue打包后的路由前缀处理和FontAwesome字体库路径修正等常见问题的解决方案。
一:创建Django项目
django-admin startproject mysite # 创建mysite项目 django-admin startapp app01# 创建app01应用
二:安装Vue
1. 首先安装Node.js,下载地址为:https://nodejs.org/zh-cn/download/
2. 配置npm淘宝镜像,以解决npm下载速度过慢的问题
npm install -g cnpm --registry=https://registry.npm.taobao.org
3. 使用cnpm下载vue-cli
cnmp install -g cue-cli
如果之前已经安装了Node、npm和cnpm,则无需重复安装。
三:设置Vue项目
1. 将Vue项目放置在Django文件夹下,与app01文件夹保持同级关系
2. 运行Vue项目
cd firstvue ## 进入到上一部创建的firstvue项目中 cnpm install ## 安装需要的依赖模块 cnpm run dev ## 运行调式的服务,会启动一个web服务,访问localhost:8080 即可调式
如果运行成功,证明当前Vue项目没有问题。

四:Vue项目写完后,打包Vue项目,然后修改Django配置,将Vue集成到Django中
cnpm run build ## 打包Vue项目,会将所有东西打包成一个dist文件夹
在Python下的项目文件夹下的settings.py中配置
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['vue-admin-master/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',
],
},
},
]把Vue的静态文件夹的目录配置到项目中【添加静态文件夹路径】
STATIC_URL = '/static/'
STATICFILES_DIRS=[
os.path.join(BASE_DIR,'vue-admin-master/dist/static/'), # 添加内容
]五:修改Django的主目录的urls文件
from django.contrib import admin
from django.urls import path
from blog import views
from django.views.generic.base import TemplateView
urlpatterns = [
path('admin/', admin.site.urls),
path(r'', TemplateView.as_view(template_name='index.html')),
]添加对应的路由
六:启动Django服务,访问localhost:8000 则可以出现Vue的首页
启动Django
python manage.py runserver http://127.0.0.1:8000/#/login
访问出现Vue项目的界面,就已经成功了!

七:有时候并不能直接访问出首页,原因是路径不对

有的会设置的有前缀,需要把前缀去掉,重新打包才能使用
打包的时候不需要把之前的打包内容删除,直接重新打包,会有对应的打包记录
八:Vue打包之后经常会出现fontawesome图标库不能使用的情况
打包之后,需要手动吧fontawesome引入的css文件路径更改
把原来的
url(/static/fonts/fontawesome-webfont.b06871f.ttf), 换成 url(../fonts/fontawesome-webfont.b06871f.ttf),
fontawesome小图标就可以显示出来了
到此这篇关于python框架django中结合vue进行前后端分离的文章就介绍到这了,更多相关django vue前后端分离内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













