Django与Vue.js整合问题:页面无法显示数据库数据并报错
排查Django+Vue整合后数据不显示的问题
兄弟,我刚上手Django+Vue的时候也踩过一堆路径相关的坑,结合你说的情况(只改了项目/应用/变量名、复制webpack.config.js、路由从homepage/games改成webapp/game但访问根路径没数据),给你梳理几个重点排查方向:
1. 先确认路由是否匹配
你访问的是http://127.0.0.1:8000/,但你的Vue页面设置的是webapp/game,得先搞清楚:
- Django的urls.py:有没有把根路径
/映射到对应Vue页面的视图?或者是不是应该访问http://127.0.0.1:8000/webapp/game才对?
举个例子,Django主urls里如果是这样:
那直接访问根路径path('webapp/game/', include('webapp.urls'))/肯定找不到对应的页面,自然加载不到数据。 - Vue的路由配置:如果是用Vue Router,有没有把
/webapp/game设置为默认路由?或者是不是你在Vue里请求数据的逻辑只在webapp/game这个路由组件里,根路径对应的组件根本没写请求代码?
2. 检查API接口的路径是否正确
你说数据库数据无法显示,大概率是前端没拿到后端返回的数据:
- 先看Django的视图(比如用Django REST Framework写的API),接口路径是不是和你改后的应用名匹配?比如原来教程里是
/api/games/,你是不是应该改成/api/webapp/game/? - 打开浏览器F12的Network标签,刷新页面,看看有没有失败的请求(红色状态码),请求的URL是不是写错了?比如前端代码里还留着原来的
/homepage/games/api/,没改成新的路径。
3. Webpack配置是否适配新路径
你只复制了webpack.config.js,里面的路径配置可能还保留着教程里的旧设置:
- 检查
output.publicPath:如果设置的是/homepage/games/static/,得改成/webapp/game/static/,不然Vue打包后的静态资源(js/css)加载不出来,页面逻辑跑不起来自然拿不到数据。 - 检查
output.path:确认打包后的文件输出路径和Django设置的STATICFILES_DIRS对应,不然Django找不到Vue的静态资源。
4. 看PowerShell的完整报错信息
你提到PowerShell报错[06/Apr/2...,把完整的报错信息贴出来能更快定位!比如如果是404 Not Found,那就是路径问题;如果是500 Internal Server Error,那就是Django视图里有代码错误(比如数据库查询写错了,或者变量名改了但没改全)。
快速验证小技巧
- 先直接访问Django的API接口(比如
http://127.0.0.1:8000/api/webapp/game/),看看能不能返回正确的JSON数据,先确认后端没问题。 - 然后访问Vue页面的正确路径(
http://127.0.0.1:8000/webapp/game/),而不是根路径,看看数据能不能显示。
内容的提问来源于stack exchange,提问作者khadija.EL
相关产品推荐
相关产品推荐

