求推荐一个可以快速开发 web 界面的框架,后端使用 Python

2017-03-20 21:36:42 +08:00
 shepherd

背景

题主想做一个分布式的任务处理系统,目前正在设计和测试原型系统,后端部分的技术点差不多已经解决了,现在正在考虑前端的开发。 由于后端是用 python 开发的,所以前端也想直接使用 python ,参考了对各种 web 框架的网评,本着开箱即用的目的,题主选择了 django ,学习 django 的成本还不算太高,完成 django 的入门教程基本够满足题主的需求了。

痛点

可是问题来了,题主想要一个漂亮的界面,虽然这个系统用户不会很多,但还是比较爱面子,所以各种 google 最后找到了 adminlte 。题主没怎么接触过前端开发,在 adminlte 里摸索了半天,差不多搞懂了 bootstrap3 、 template 这些概念,还找到了 django-amdinlte2 这种傻瓜式的插件,本以为可以开始开心的敲代码了,哪知 django-amdinlte2 和真正的 adminlte 还是有很多差别的,有些东西达不到题主想要的效果。

解决方法

需求

因为这不是一个以内容为主的应用,前端只是做一些任务的管理和状态的显示,所以题主甚至想为后端写几个 RESTAPI ,把前端完全剥离出来。不知道大家有没有更好的选择。

13738 次点击
所在节点    Python
20 条回复
loading
2017-03-20 21:44:12 +08:00
写成 api ,后端只给基本的页面跳转逻辑(也就是不开发 spa 版本),用 json 传数据,前端只用 jquery 这些易上手的,用 bootstrap 2,这样难度会下降到可接受的程度。
loading
2017-03-20 21:45:50 +08:00
等前端水平上来了,直接换到 vue.js 等库, api 依然可用,前端大改,后端也就稍微适应一下就行了。
Kilerd
2017-03-20 21:52:33 +08:00
所以前端也想直接使用 python

?????
HLT
2017-03-20 22:13:53 +08:00
原文:题主没怎么接触过前端开发,在 adminlte 里摸索了半天,差不多搞懂了 bootstrap3 、 template 这些概念。。。


扔给专业的人来做 不好吗?
你这不是差不多搞懂了概念。。。你是前端啥啥不懂啊
lecher
2017-03-21 01:54:43 +08:00
我用 admin LTE 做过管理后台模板。 admin LTE 要想用好光靠后端渲染是不够的,好多 admin LTE 集成的插件是要写 JavaScript 的代码的,获取后端的数据之后通过 JS 来做数据渲染。
如果是想快速在 admin LTE 上面做开发,建议不要用 Django 集成的模板,拆成 restful 的形式, Django 、 flask 、 tornado 什么框架都好,只提供 API 接口。交互效果全部交给 admin LTE 的各种插件完成。这样开发起来会轻松一些。

其实 admin LTE 这种形式的交互效果,如果要做的业务比较复杂的话,写起来 JavaScript 的代码量还是挺多的,因为要写很多网络请求的接口去拿数据。尤其你的任务系统可能会用到报表,还可能要集成不同的报表插件,所以不要对 admin LTE 抱太大的改造希望。这是一个庞大的管理后台模板,很多效果都是靠不同的插件完成的,实际开发的时候可能要去好几个不同的插件官网查看文档,做好这个心理准备。

如果有时间和精力学习 JavaScript ,我觉得可以考虑用用 vuejs 方面的模板,我是个主后端的开发,做个人项目的时候最头疼的就是前端交互的逻辑,因为做出来的又丑又繁琐,接触 vuejs 之后,仅仅就是用 vue 替代 jQuery 就省去了我很多写前端渲染的精力,所以在这里推荐一下 vuejs ,考虑一下用它替换 jQuery 试试看?
shepherd
2017-03-21 08:00:36 +08:00
@Kilerd 描述出错了,这里的前端指用户界面,不是常见的那个前端
shepherd
2017-03-21 08:05:38 +08:00
感谢大家的回复,就不一个一个 @了
est
2017-03-21 08:58:27 +08:00
admin lte 只是个壳子。要做出那个样子非常花时间。
evil4ngl3
2017-03-21 09:21:42 +08:00
哈哈,前段时间正好在跟楼主做一样的事情, 不过我用的是 flask 尝试的,最后转了一圈发现,发现不如 @loading 说的那样。服务器上用 python 处理任务,然后用 python-eve 把功能做成 REST API ,前端你想怎么改就怎么改了。我准备学习用 vuejs ^_~
ansheng
2017-03-21 09:36:28 +08:00
adminlte 只是个模板而已,
PythonAnswer
2017-03-21 09:42:59 +08:00
建议:


这样弄

m: django orm
v: vue.js
c: django url

django 通过 restfulapi 吐出数据给 vuejs 吃
loading
2017-03-21 12:15:57 +08:00
@evil4ngl3 是的,我以前也是用的 flask 。
现在也是计划 vuejs ,不过我后端换 golang 了。
settings
2017-03-21 13:12:21 +08:00
可以看看我们公司维护的这个 django-adminlte ,内置了菜单、权限等功能,直接用 adminlte 的表单和 table 就可以了

https://github.com/beastbikes/django-adminlte
findex
2017-03-22 15:53:17 +08:00
@PythonAnswer 你这样做, 还不如直接上 SQLAlchemy, 绕个大弯. django db model 性能不是一般的差. django 的 URL 好用吗? 生产环境这样的组合不推荐. 当然看上去题主看上去还在学习中, 这些东西足够展示了.
qile1
2017-03-23 14:46:01 +08:00
问下是自己做吗?我也想弄一个后台任务管理的,自己研究是否可以一起弄弄
shepherd
2017-03-23 15:44:05 +08:00
@qile1 自己做。
看了上面的回复,这两天在看 django rest framework 和 flask ,又不知道怎么下手了。。。我想把 api 做成 token 验证的,目前暂时卡在 django 的 csrf 验证问题上。
shepherd
2017-03-23 15:45:43 +08:00
@loading 用 golang 来做分布式任务吗?是不是 Machinery ,之前也看了一下 Machinery ,感觉没有 python 那么容易集成。
qile1
2017-03-23 23:04:42 +08:00
@shepherd 为什么不做成只登录验证, api 一般不会知道呀
Kallen
2017-03-29 14:19:56 +08:00
adminlte 这个前端模板很容易和 django 结合呀, 用 adminlte 里的 start.html 写一个 `base.html` 的父模板, 然后用 django 的 extends 模板继承就可以了, 剩下的就是数据渲染了, 就这么简单!
shepherd
2017-04-14 10:14:58 +08:00
花了两周时间来调研前端技术,收获不少,又确定了大概方向

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

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

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

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

© 2021 V2EX