论坛首页 编程语言技术论坛

初识django, 一起进入python的世界吧

浏览 131084 次
该帖已经被评为良好帖
作者 正文
   发表时间:2008-11-14  
ahuaxuan 写道
songk 写道
我也在犹豫到底选择Diango 还是Ror ,楼主能否写一下详细的决定过程,你的理由就是上手快,但是RoR上手也快啊。谢谢


确实两者上手都挺快的,两者比较类似,我选择django的的原因是因为我选择了python,所以才选择了django,在python的web框架里,django不但开发速度快,而且运行速度也是最快的,稍后我会放出我的测试.

而说到为什么选python而没有选ruby,那么原因就太多了,因为python的用途非常多,比如说google很多应用都用到了python,还有我们的cdn也是用python,很多电影,比如星球大战也是用python,美国的航天局也用python,youtube也用python(据说用python的公司很容易被google收购,呵呵),当然这里更多的是个人喜好的问题,有的人喜欢ruby,有的人喜欢python,虽然我认为ruby现在还是没有python强大的,如果即使他们一样强大,我还是选择python,就象买剃须刀一样,功能一样,我为什么只挑我喜欢的那种呢,只是因为我喜欢它.

呵呵,和我一样,最终选择了python
1 请登录后投票
   发表时间:2008-11-17  
决定选python
1 请登录后投票
   发表时间:2008-11-18  
ahuaxuan 写道
但是ahuaxuan也知道要掌握一门语言和技术需要的肯定是不止几天而已

呵呵,这句话让我想起了某日剧里面的一个台词——“但是莉香也知道……”  楼主好可爱哦。
跑题了。。。
谢谢楼主分享,《理解专业程序员》和《代码大全》中都提到过掌握两门以上语言对提升程序员水平的巨大作用。支持楼主。
0 请登录后投票
   发表时间:2008-11-22   最后修改:2008-11-22
ahuaxuan 写道

python的用途非常多,比如说google很多应用都用到了python,还有我们的cdn也是用python,很多电影,比如星球大战也是用python,美国的航天局也用python,youtube也用python(据说用python的公司很容易被google收购,呵呵),  ...,我为什么只挑我喜欢的那种呢,只是因为我喜欢它.


python 除了类函数定义中的self看着不顺眼外,还是相当好用的。我也用它,是因为公司的每个linux机子都有它,没ruby,而且python看着真简洁。

有关企业界的承认,也补充一些:
a) Mac机,还有大多数Linux都默认安装Python,很顺手。

b) 巨头支持。Google 互联网老大,公司内部中Python是官方的第三语言,有内部员工说他们是能用Python就用Python, 实在不行才用C++;   Youtube 大部分是用 Python写的;著名Linux发行版Ubuntu的发行公司的官方语言,也是其创始人的首选语言;

c)其他还有Redhat Linux, 美国宇航局,金融系统如纽约股票交易所,摩根大通,电影动画制作如动画三巨头Disney,Pixar和DreamWorks,星球大战的特效公司ILM等一系列如雷灌耳的大公司中使用。桌面程序如流行程序BT下载客户端等。

ruby也是不错的,只是在比赛中慢了几步,又没啥特别突出的,ROR只是个概念,python也是足够灵活的,现在有对应的pylon和django;对未来的多核CPU还没注意到ruby有没有努力去适应。看看python的网络排名已经超过perl和c#,ruby掉出前十名。不过创业型或中小型企业还是可以考虑用rails的.
1 请登录后投票
   发表时间:2008-11-24   最后修改:2008-11-24
用了将近一个月的Django,说实话开发速度跟我自己写的PHP框架比起来还有点差距。说说几个不好的地方:

1、urls.py的正则表达式匹配有两个弊端:顺序匹配和没有反推功能。正则的顺序匹配对于对算法要求比较严格的人来说是很难接受的。另外反推功能(从view推出url以便于在模板中使用)的缺失也不方便,可能是我只是浅尝则止,没有发现对应的反推函数;
2、把action称为view,这增加了名词的混淆;
3、缺少service层,不容易复用业务组件,此时的hack是把service扔进model,这会造成混乱;
4、模板语言太简陋,ifequal不支持or之类的操作,也不支持大小比较操作,等等,很多时候视图逻辑只能进入action(Django里称为view),增加了耦合度;
5、orm层封装得有点厚,对DBA来说增加了优化数据库的难度;
6、不支持同时运行多种数据库和多台数据库。

以上只是我一段时间里的一点体会,肯定有不正确之处,希望各位帮忙指正。
0 请登录后投票
   发表时间:2008-11-24  
1. 顺序匹配不懂你具体所指,但django的url定义可以命名,然后用reverse得到

2. 这个倒是没办法,不过仔细去想view其实也很恰当,view 是为真正的表现层服务的
3. model的方法和manager类的方法均是很好的放置业务逻辑的地方.这没有什么不好,喜欢ddd开发的将逻辑放到model中,喜欢transaction script将逻辑放到manager类中
4. 模板可以用mako ,但其实django的模板还是有好处的,最起码我这个项目中,网页设计师能看的懂这些标记,要是用mako,只能程序员自己整了
5. orm 没办法,如果要dba 友好,只有用sqlalchemy的sql expression,我现在都是混用两者的

6. 其实有很简单的hack 的google一下就有,django 的资源其实挺多的
0 请登录后投票
   发表时间:2008-12-31  
看来django的orm还没有grails好玩
0 请登录后投票
   发表时间:2009-01-16  
我只是用PYTHON做一些测试工具,其他的还真没做过.
0 请登录后投票
   发表时间:2009-06-19  
刚刚看了几天的python和django,感觉不错,不过对于django总感觉orm部分不公开,很不放心
0 请登录后投票
   发表时间:2009-08-09  
diegoyun 写道
郁闷的是,我鼓动别人学python学django,但我没发现在django里如何解决我的应用需求.

如,多数据库应用. 如果在spring里,通过aop拦截数据源名字可以自动切换数据库.对action层面的类来说,不需手动切换数据库.

不知道django如何解决多数据库的问题?

请教各位牛牛.


在rails里面进行多数据库应用真是方便极了,直接在模型里面声明即可,或许这就是ruby强大的地方,也就是说一个对象在建立之后甚至运行的过程中也可以修改它的属性(数据库连接)
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics