V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mrhero
V2EX  ›  Django

请教学习 Django 的好方法、书目

  •  1
     
  •   mrhero · 2015-04-07 17:17:22 +08:00 · 6392 次点击
    这是一个创建于 3526 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请问下大家有没什么书目,或者好的方法来学习Django
    利益申报:之前学习过些基础的py语法,
    看过些django的入门书目,但是自己没找到好的资源

    又想请问下大家是怎么学习django的呢

    28 条回复    2015-04-29 23:05:48 +08:00
    geeklian
        1
    geeklian  
       2015-04-07 17:20:28 +08:00
    入门:写一个blog
    提高:完善这个blog
    等这个blog不再更新了,也就完成django基本的学习了。
    crazyxin1988
        2
    crazyxin1988  
       2015-04-07 17:21:49 +08:00
    入门:官方文档
    提高:官方文档
    官方文档蛮赞的了 还找啥别的资料啊
    limbo0
        3
    limbo0  
       2015-04-07 17:24:46 +08:00
    tango with django,支持的django版本比较新,配合官方文档看更好.
    twor2
        4
    twor2  
       2015-04-07 17:45:38 +08:00
    @geeklian
    @crazyxin1988
    @limbo0

    给的建议都很赞
    passluo
        5
    passluo  
       2015-04-07 17:46:18 +08:00
    redguy6
        6
    redguy6  
       2015-04-07 19:38:52 +08:00
    roychan
        7
    roychan  
       2015-04-07 19:43:31 +08:00
    边写项目边学吧,我和我同学一起学的。
    sitin
        8
    sitin  
       2015-04-07 19:47:24 +08:00
    如果不喜欢看电子书,有一本django web开发的翻译书也可以看看。
    alexapollo
        9
    alexapollo  
       2015-04-07 20:42:53 +08:00
    写了几年DJANGO,深以为DJANGO的各类文档都是大坑啊。。。
    falcon05
        10
    falcon05  
       2015-04-07 20:43:39 +08:00 via iPhone
    django book 不过用的django版本好像有点老,案例和基础用法讲得不错,还有就是官方文档,详细到不行。
    binarymann
        11
    binarymann  
       2015-04-07 21:05:31 +08:00
    @alexapollo 不是听说django的文档写得很好吗
    lichifeng
        12
    lichifeng  
       2015-04-07 22:10:41 +08:00
    顶一楼,我现在就是看官方文档做自己的BLOG,很好玩

    官方文档很全面,很专业,很好用

    不过刚上手要熟悉一下,熟悉以后就很容易找到自己想要的内容

    django把常用的功能都考虑得很全面了,需要做的轮子很少

    另外stackoverflow是学习django的好伙伴

    非官方的教程坑很多,特别是中文的,很多还停留在1.4,所以少用百度搜DJANGO吧 XDDD
    kchum
        13
    kchum  
       2015-04-08 00:06:43 +08:00
    官方文档是最好的教程。
    cfan8
        14
    cfan8  
       2015-04-08 02:00:46 +08:00 via Android
    同求,最近看了一些书,很多都不贴完整代码,前后端怎么连接起来的都看不清,而且都是example级别的,没有合理的功能层次划分,根本没法借鉴来做项目。想着去GitHub上找点开源的看看,很多甚至更乱。

    可能上述感想和我之前Java写的多有关系,总感觉Python对系统依赖很大,很少有pure Python的库。

    另外官方文档很垃圾,最主要一点是排版很成问题,代码和内容字体太接近根本看不清,也没有完整代码,都是这里一点那里一点,很乱。
    wph95
        15
    wph95  
       2015-04-08 09:08:47 +08:00
    入门:the django book + 做个blog
    提升: 做项目 做项目 做项目
    自己给自己找项目做,在做项目中提升。 多看django官网 不会就去google,stackoverflow
    一定要找有靠谱的项目!
    另外ls有人说官方文档垃圾的?是django的文档吗?还是我们不是一个次元的?
    切记找个靠谱的项目
    assassinpig
        16
    assassinpig  
       2015-04-08 09:20:02 +08:00
    爬官方文档即可
    alexapollo
        17
    alexapollo  
       2015-04-08 10:19:40 +08:00
    @binarymann 你看看就知道了 :)
    关键是组件之间协同起来很麻烦,以及帐号体系、内建的一些系统的理解
    要花很多很多时间在manual上面,但manual经常有些地方是讲不清楚的(三两句话带过了一个功能),或者有很多各种各样的废话
    neoblackcap
        18
    neoblackcap  
       2015-04-09 02:02:25 +08:00
    @alexapollo 这个我还真看过Django的文档,也算老用户了吧,反正我是1.5开始到1.7都有看过,没看出有什么问题啊。
    组件要解决的问题,官方文档已经给出。或许你可以说说你遇到哪些问题,若是我也碰过,可以交流一下。
    我记忆比较深的一个问题是Django貌似是在1.6的版本里面将logging模块直接换成标准库里面的了,然后就没有然后了,我就特意在SO上面发了个贴问具体的配置问题。感觉像这样的点,Django官方文档一句话带过也无伤大雅,毕竟都用标准库了,大家自己去看标准库的文档就好了。
    alexapollo
        19
    alexapollo  
       2015-04-09 12:48:50 +08:00
    @neoblackcap 我看的会比较久一些。有几个点我觉得比较让人头疼的:
    1. 第三方组件的协同,比如django-nonrel和原生的账户体系、后台管理体系
    2. 不同版本的做法经常变动,比如1.5里的用户扩展和1.6里的用户扩展就完全不一样
    3. 对很多细节的含糊带过,比如dispatch的csrf decorator要先打才能到post方法;也比如文档有的地方写get(self, request)有的地方写get(self, request, *args, **kwargs),新手是会非常迷惑的。
    4. 太多的“翻译”类工作了,把原来一两句话的事内建到框架里(而且往往很难用),比如form的一些参数,还不如裸写,这种事情查django文档不如查标准
    5. 第三方库的质量真是一团糟,我给N个第三方库发过bugfix,很多都是发上去以后声称有功能但后续就没维护了,比如social auth,作者占了坑以后也不测一测好不好用……
    alexapollo
        20
    alexapollo  
       2015-04-09 13:00:08 +08:00
    @neoblackcap django文档挺齐,但毫无重点,性质和c++ primer一样,是工具书
    但它的工具性并不好(很难解决问题),往往不如SO上问
    SO上的问题往往也是版本相关的,换一个版本就不能用了
    就算刚好是在刀刃上的问题,也要改很多细节(由于django的一体化设计)

    At least, I think no one want to be a manual expert...
    alexapollo
        21
    alexapollo  
       2015-04-09 13:03:50 +08:00
    我印象最深的就是当时文档宣扬的CreateView,看上去很实用,翻了不知道多久文档终于做出来了
    然后就是一句话:what the fuck?
    neoblackcap
        22
    neoblackcap  
       2015-04-09 21:45:17 +08:00
    @alexapollo 我觉得你说提的1,2,5点其实都是一个问题,问题就是Django自身的版本更新不向后兼容,然后第三方库就崩了。这个问题嘛,我觉得官方文档肯定是解决不了的,只能靠第三方库的作者,当然自己有心自己去fork然后更新就好。

    至于一些文档上面的小问题或者模糊的问题,这个嘛,我觉得你说的是有道理的,但不是每个人都觉得有道理,所以很难说官方没有详细写就属于不好的行为。这个嘛,我个人是建议你向Django小组发个issue然后直接自己动手将细节补上去就好了,完善文档,对谁都好,但是有的时候有经验的程序员就不想看一些标准的东西,比如http标准里面的东西,在Django里面再写一次就没什么必要了。

    然后Django的文档的确就是定位在工具书(我个人觉得),没事千万别一页页去翻。至于工具性好不好,这个看问题,我自己遇到的一些问题就看文档就能解决了,比如Model层要实现泛型,用ContentType就挺好用了。

    至于Class-bass View这个我还真没用过,之前都是写Function-base View的,到了要用Class的时候,就变成用Django-rest-framework
    alexapollo
        23
    alexapollo  
       2015-04-13 11:03:54 +08:00
    @neoblackcap 我一向觉得文档不是越多越好,而是要在刀刃上
    我倒是把Django的文档全部翻过三四遍,因为没翻完还真不敢用
    最后还是觉得Tornado好用一点
    alexapollo
        24
    alexapollo  
       2015-04-13 11:04:31 +08:00
    @neoblackcap 最后就是那个问题:是一个框架好还是一个库好?
    现在我会选择后者了。
    neoblackcap
        25
    neoblackcap  
       2015-04-13 12:39:24 +08:00
    @alexapollo 我现在在用Tornado,之前也用过Flask跟Django,现在给我的感觉就是百分之90的工作都是用Django能解决的,没必要上Tornado。上了Tornado跟Flask也最后会变成成Django的样子。

    一个框架好还是一个库好?这个问题就去看Flask作者的经历就可以了,当你了解你的业务,你的需求,然后你的能力又够强的时候,这些框架都不一定适合你用,但是你可以构建你自己的框架,自己定制自己的。

    库也是需要维护的,虽然大家会说库可以替代可以不强制我们按它的规则来写。但是库并不能大而全,对于团队协作也是个问题,毕竟不是每个人都精通Python,有些人连Python的C语言扩展都没写过。你选一大堆库,这个成本是很大的。
    alexapollo
        26
    alexapollo  
       2015-04-13 16:08:28 +08:00
    @neoblackcap 我觉得写过PyObject的人肯定是少数。。
    Django里的东西是可以写的很漂亮,但是也就“技止于此”
    你有用过Tornado和django的联动吗?
    neoblackcap
        27
    neoblackcap  
       2015-04-13 17:49:54 +08:00
    @alexapollo 我觉得没有了解过PyObject的人都不能说会Python吧,毕竟这是这门语言的一大优势,而且是性能有需要的时候就要上的。

    不过我还真没用过Tornado跟Django联动,之前公司是有业务上的需求,但是这两个都是分开的两个服务,用http来交互。
    Andrewliu
        28
    Andrewliu  
       2015-04-29 23:05:48 +08:00
    我之前在学习Django的时候写过一本书, 希望对你有帮助 [Django搭建简易博客教程](https://www.gitbook.com/book/andrew-liu/django-blog/details)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   923 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:07 · PVG 04:07 · LAX 12:07 · JFK 15:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.