锁定老帖子 主题:偶对django的rant
精华帖 (4) :: 良好帖 (9) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-04-07
引用 不许if混用and / or,但是要求if嵌套?当模板作者都是白痴啊!
不许写 if a = b,偏要写ifequal a, b,我只能说设计者的脑子进水了!! 这个用起来确实感觉很别扭。 引用 url要用正则匹配
个人感觉这是相当好的一个设计,尤其在实现URL的静态化时。而且Python的正则式支持命名分组,用起来相当爽。 不明白为什么大家对Django的模板如此多的批评,我感觉它设计很不错,尤其是模板的继承,很方便。 |
|
返回顶楼 | |
发表时间:2009-04-07
个人还是那观点,django只适合做适合django做的,那么一切特点都是优点,如果强迫django做不适合它做的,那么一切特点都是掣肘,灵活性需求高一点的不如看看werkzeug之类的吧
|
|
返回顶楼 | |
发表时间:2009-04-07
最后修改:2009-04-07
引用 url要用正则匹配
个人感觉这是相当好的一个设计,尤其在实现URL的静态化时。而且Python的正则式支持命名分组,用起来相当爽。 不明白为什么大家对Django的模板如此多的批评,我感觉它设计很不错,尤其是模板的继承,很方便。 即使它支持命名分组,仍然是很糟糕。 对比: urlpatterns = patterns('', (r'^articles/(?P<year>\d{4})/$', views.year_archive), (r'^articles/(?P<year>\d{4})/(?P<month>\d{2})/$', views.month_archive), ) static mappings = { "/$articles/$year/" (view:'year_archive') { constraints { year(matches:/\d{4}/) } } "/$articles/$year/$month" (view:'month_archive') { constraints { year(matches:/\d{4}/) month(matches:/\d{2}/) } } } 显然grails的配置方式更直观,更容易维护。 命名组是为了缓解正则的复杂性,但是问题是,我们其实并不需要这个复杂性。 |
|
返回顶楼 | |
发表时间:2009-04-07
http://web2py.com/examples/default/examples#template_examples
觉得web2py的template不错,虽然还是不兼容html,但基本就是python |
|
返回顶楼 | |
发表时间:2009-04-07
最后修改:2009-04-07
django的url
django的url确实有点麻烦,如果设计成zero-configuration就比较好了,我之前也这样做过,利用反射和命名组,可以让一个view中只需要一个url的配置,这样就成了有多少个views.py,就只需要多少行配置 (r'(?P<method>[a-zA-Z0-9]+)^$', 'inforplatform.bargin.views.execute')) 然后在views里加上这个方法: def execute(request, method): return getattr(mark.views, method)(request) 通过以上这种做法,我们只需要配置一行代码,就搞定了views里的方法,但是这种方法的限制就是views里的其他方法不能再有除request职之外的参数了 ----------------------------------------------------------------------------------------------------- 模板语法 对于django的模板,我觉得可以接受,模板的功能都是大同小异的,freemarker,velocity我都是一直在用的,差不了多少,如果从更高的层次上来看,它没有什么明显的优点,但是也没有什么明显的缺点,有点鸡肋的感觉,给人的感觉就是“无所谓” ----------------------------------------------------------------------------------------------------- 模板路径 模板的选择确实不怎么智能,最好是强制要求模板的命名,然后指定字符串就能找到对应的模板,加载之,正如codebehind一样,但是它为啥不这样做,应该是作者想法和我们不一样(俺们也不能要求作者遵循俺们的想法),但是这并不妨碍俺们能将其改造成codebehind那样,其实我们只要写个很简单的方法,根据规则手动拼模板路径就ok了,这个对应要使用coc的人来说不是难事 |
|
返回顶楼 | |
发表时间:2009-04-08
感同身受。我用django做过两个项目,一个网站,一个应用系统,做网站还算方便,做应用系统苦不堪言。如果说URL正则匹配还能忍受的话,那么那个form是我最不能忍受的东西,这明明就是struts里的form啊,照我看来django就是一个python版的struts。
|
|
返回顶楼 | |
发表时间:2009-04-08
一开始研究django,看过pylons后马上放弃了django。如以上朋友所说的,django做他擅长的开发类型比如新闻网站很方便,但是做其它系统特别是应用系统则太不灵活了。
以前听过一个对比:django想引导你去构建它擅长构建的东西;而pylons可作为你构建任何应用背后的基石。 |
|
返回顶楼 | |
发表时间:2009-04-08
呵呵,做网站嘛,还是 php 来得方便
|
|
返回顶楼 | |
发表时间:2009-04-08
引用 一开始研究django,看过pylons后马上放弃了django。如以上朋友所说的,django做他擅长的开发类型比如新闻网站很方便,但是做其它系统特别是应用系统则太不灵活了。
以前听过一个对比:django想引导你去构建它擅长构建的东西;而pylons可作为你构建任何应用背后的基石。 个人认为Django做中小网站是相当的快,确实不适合做应用,做企业应用java还是王道。 |
|
返回顶楼 | |
发表时间:2009-04-08
引用 所以我的理解,不是django设计哲学的问题,实在是python缩进带来的限制,其实你观察一下,没有一个python web框架是直接拿python代码做模板语言的。
python的缩进确实容易出问题,有时候写代码看着明明是对齐了,可是运行的时候就是出错。如果嵌套的层次稍多一点,自己就已经先蒙了,不知道现在在哪一层。还有,在perl里,你可以把多条命令写在一行,发送到远程主机上执行,python肯定是不行了。 各位大牛,Perl有没有像Django这样的WEB框架?如果有真的要好好研究一下。 |
|
返回顶楼 | |