不太懂前端。目前看到比较多的 vue +django restAPI.这样完全放弃了 django 的 view 操作 vue 需要自己提供路由 有什么 vue 和 django 的解决方案可以提供参考吗?
1
YvesX 2020 年 3 月 5 日
这样不好吗
|
2
Vegetable 2020 年 3 月 5 日
这就是前后端分离了。如果想轻度使用 vue 的话,那直接 script 引入当 jquery 用就好了。
|
3
kindjeff 2020 年 3 月 5 日 via Android
只能在 Django 项目里建一个目录起 vue 项目,然后配置 Django 的模板和静态文件目录,指定到 vue 项目生成的目录
|
4
bnm965321 2020 年 3 月 5 日
django 的 view 是 MVC 中的 controller,为什么会放弃。
如果不用 DRF,可以直接用 view 写你的接口。 如果楼主说的 view 是 template,那么确实不能按照 django 的规矩用了。vue 生成的 bundle 文件只有一份,django 只要 render 一次就行了 |
5
kevinguoCN OP @bnm965321 那么这样做。 一个页面 render 一次,然后其他的在该页面上的操作 全部改为 api 去操作。
|
6
kevinguoCN OP @kindjeff 在 django 的 templetes 目录下 起一个 vue 的目录,然后在 settings 中 配置静态文件,
|
7
vicalloy 2020 年 3 月 5 日
Django 只提供同后端数据交互的 API,所有前端的路由完全由 Vue 自己管理。
|
8
cnanyi 2020 年 3 月 5 日
也可以把 vue 当成 jquery 那样单独引用进去,但是这样的话,很多 es6 语法就不能用了。django 的 admin 很好用, 是 template 方式的, 而 vue 最好使用 singleapp 的方式做前后端分离。 所以不建议 django 框架使用 vue。
如果一定要一起用, 可以把后台数据的 CRUD 用 django admin 管理, 业务系统用 django 出接口, 前端用 vue 单独起个应用。 设置好认证规则, 在前端页面做整合 |
9
bnm965321 2020 年 3 月 5 日
@kevinguoCN vue 是 SPA,怎么一个页面 render 一次呀
|
10
abcbuzhiming 2020 年 3 月 5 日
所有前后端分离都是一个套路,放弃后端框架的魔板引擎,只输出 json (或者其它的结构数据),模板引擎放在前端,由前端渲染出最终页面效果
|
11
bnm965321 2020 年 3 月 5 日
如果可以像 node 一样在 django 里面搞一个 js runtime。实现 SSR,就可以达到楼主的目的了
|
12
kevinguoCN OP @bnm965321 那这样做 ,django 本身的 user 认证是不是还能用? 是不是如果用了 vue 必须使用 token 这样的额认证方式了。
|
13
hushao 2020 年 3 月 5 日
把 vue 当成 jquery 就行了,不要把 vue 当成现代前端框架
|
14
bnm965321 2020 年 3 月 7 日
@kevinguoCN 看前后端分离的方式了。
如果使用相同域名,不同 PATH 来分割前后端项目: 比如后端: domain.com/backend/ 前端: domain.com/frontend。 这种方式是可以继续使用 django 的 session authentication backend。 否则就用 JWT,单点登录都可以。DRF 本身就支持。 |