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