django 和 vue 如何结合?

2020 年 3 月 5 日
 kevinguoCN

不太懂前端。目前看到比较多的 vue +django restAPI.这样完全放弃了 django 的 view 操作 vue 需要自己提供路由 有什么 vue 和 django 的解决方案可以提供参考吗?

5139 次点击
所在节点    问与答
14 条回复
YvesX
2020 年 3 月 5 日
这样不好吗
Vegetable
2020 年 3 月 5 日
这就是前后端分离了。如果想轻度使用 vue 的话,那直接 script 引入当 jquery 用就好了。
kindjeff
2020 年 3 月 5 日
只能在 Django 项目里建一个目录起 vue 项目,然后配置 Django 的模板和静态文件目录,指定到 vue 项目生成的目录
bnm965321
2020 年 3 月 5 日
django 的 view 是 MVC 中的 controller,为什么会放弃。

如果不用 DRF,可以直接用 view 写你的接口。

如果楼主说的 view 是 template,那么确实不能按照 django 的规矩用了。vue 生成的 bundle 文件只有一份,django 只要 render 一次就行了
kevinguoCN
2020 年 3 月 5 日
@bnm965321 那么这样做。 一个页面 render 一次,然后其他的在该页面上的操作 全部改为 api 去操作。
kevinguoCN
2020 年 3 月 5 日
@kindjeff 在 django 的 templetes 目录下 起一个 vue 的目录,然后在 settings 中 配置静态文件,
vicalloy
2020 年 3 月 5 日
Django 只提供同后端数据交互的 API,所有前端的路由完全由 Vue 自己管理。
cnanyi
2020 年 3 月 5 日
也可以把 vue 当成 jquery 那样单独引用进去,但是这样的话,很多 es6 语法就不能用了。django 的 admin 很好用, 是 template 方式的, 而 vue 最好使用 singleapp 的方式做前后端分离。 所以不建议 django 框架使用 vue。
如果一定要一起用, 可以把后台数据的 CRUD 用 django admin 管理, 业务系统用 django 出接口, 前端用 vue 单独起个应用。 设置好认证规则, 在前端页面做整合
bnm965321
2020 年 3 月 5 日
@kevinguoCN vue 是 SPA,怎么一个页面 render 一次呀
abcbuzhiming
2020 年 3 月 5 日
所有前后端分离都是一个套路,放弃后端框架的魔板引擎,只输出 json (或者其它的结构数据),模板引擎放在前端,由前端渲染出最终页面效果
bnm965321
2020 年 3 月 5 日
如果可以像 node 一样在 django 里面搞一个 js runtime。实现 SSR,就可以达到楼主的目的了
kevinguoCN
2020 年 3 月 5 日
@bnm965321 那这样做 ,django 本身的 user 认证是不是还能用? 是不是如果用了 vue 必须使用 token 这样的额认证方式了。
hushao
2020 年 3 月 5 日
把 vue 当成 jquery 就行了,不要把 vue 当成现代前端框架
bnm965321
2020 年 3 月 7 日
@kevinguoCN 看前后端分离的方式了。

如果使用相同域名,不同 PATH 来分割前后端项目:

比如后端: domain.com/backend/ 前端: domain.com/frontend。

这种方式是可以继续使用 django 的 session authentication backend。

否则就用 JWT,单点登录都可以。DRF 本身就支持。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/650033

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX