V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
phithon
V2EX  ›  Python

一些 Django 学习指南

  •  4
     
  •   phithon ·
    phith0n · 2016-11-14 00:12:30 +08:00 · 5460 次点击
    这是一个创建于 2930 天前的主题,其中的信息可能已经有所发展或是发生改变。

    ref: http://weibo.com/ttarticle/p/show?id=2309404041496792822800

    我学的也不深,不过可以说说经验和看法。现在说的,可能两年以后看又不一样,仅供参考。

    --

    9 月中旬开始学 Django ,到 10 月 23 号发布 Mooder 团队贡献系统 。说一下我是怎么学 Django 的。

    首先, Django 确实是一个让人爱不释手的 Web 开发框架,他的角色类似于 Ruby on rails ,是敏捷开发的首选。他的定位和 Flask 是不一样的,后者非常灵活,很轻。但当你使用后者开发完一个完整网站后,你会发现:咦,其实你也用到了大量​第三方模块,总体重量和 Django 也没太大区别了。

    ​ Django 集成了很多模块,比如它自带 Model 、 Form 、 Templates ,而 Flask 则需要引入 SQLAlchemy 、 WTForm 、 Jinja2(自带) 等模块。所以,很多 Django 教程都是从整体入手的,在你什么都不懂的情况下,你读教程会发现:咦,各种看不懂,互相有牵扯,除非全部读完,很多人读了一半可能就放弃了。

    教程还是推荐 《Django Book》,不要看中文版,中文版太老了,大量 Django 的好用的一些特性都没有。除非你能找到 Django 1.10 的。

    因为之前有 Tornado 和 Flask 开发经验,所以很多概念我上手比较快。特别是 Form ,以前做其他语言开发都没用过。如果你没接触过 Python 开发的话,建议看看这几个视频教程(建议先看 1 或 3 ):

    Try Django 1.9 -- Build a Django Blog -- Django 1.9, Bootstrap 3.3, & More.

    Advancing the Blog from Try Django 1.9

    Try Django 1.10 - A URL Shortening Service

    ​这个小哥讲的特别清楚,而且很勤奋,这上面多个 Django 教程都是他讲的。不过教程是英文的,建议打开 Youtube 的字幕(最好是看英文字母,不要自动翻译,自动翻译的没法看),配合代码一起看也不难。

    ​通常学 Django 都会写一个博客,通过实践来学习。这个路子还是蛮正确的,上面的视频教程也是从写博客入门的。不过我感觉博客轮子太多了,也可以找点别的东西写,比如第三个教程就是写一个短链接平台。

    ​另外,学的时候可以找个开源程序做参考,比如 Mooder 团队贡献系统 ,再推荐一个 djangoStudyTeam / DjangoBlog 。有不懂的地方可以去看看别人的代码。

    英文不好的同学……学习难度会上几个层次,实在没什么可帮你的,看看这两个吧,Django 基础教程 、django 的视频教程 。(还是不建议看中文的,这种多半会因为太基础或讲的不好而半途而废)

    ​上手 Django 以后,你会发现很多第三方库将减少你大部分工作量。比如 Mooder 用到的 django-registration-redux ,配合 Django 自带的 auth ,你只需要写模板+扩展逻辑(比如我将用户名登陆改成邮箱登录),其他的包括登录、注册、邮件验证、密码找回、密码修改等逻辑都不需要写啦。

    这里再推荐一些插件: Django 常用三方库​ ,大多数都比较实用。

    最后,我说一下 Django 比较适合的场景吧。 Django 当然做什么都可以,但最适合需要“赶进度”的项目,因为用它开发真的的很快, Django 自带的后台也特别实用;另外,在数据库逻辑关系非常复杂的情况下,你会发现 Django 的 Model 简直太好用的,关系对象之间的互相引用信手拈来,可以简化大量数据库操作。

    不知道学 Django 的人多不多,多的话可以拉个学习小组,有心的同学可以组织一下~

    9 条回复    2018-06-05 09:30:51 +08:00
    nowhy
        1
    nowhy  
       2016-11-14 00:21:48 +08:00 via Android
    mark 谢谢推荐
    hujianxin
        2
    hujianxin  
       2016-11-14 00:23:12 +08:00
    非常好!
    hujianxin
        3
    hujianxin  
       2016-11-14 00:25:32 +08:00
    我平时也用一些 Python ,如果写用 Python 写 Web 的话,我只用 Django 。
    现在在我这里, Django 唯一的问题是官方没有对 MongoDB 进行支持,虽然可以通过其他的方案进行解决,但是总有一些让人不爽的地方。
    linuap
        4
    linuap  
       2016-11-14 07:44:42 +08:00 via Android
    mk,最近有点想造个不一样的轮子玩儿
    ansheng
        5
    ansheng  
       2016-11-14 08:54:54 +08:00
    mark ,同需要小組。
    dyhbrewer
        6
    dyhbrewer  
       2016-11-14 10:06:44 +08:00
    太感谢了,正在啃 Tango with Django
    lcy
        7
    lcy  
       2016-11-14 10:14:13 +08:00
    mark
    amustart
        8
    amustart  
       2016-11-14 14:17:44 +08:00
    感谢,原来是时雨牛啊
    alittlewhitea
        9
    alittlewhitea  
       2018-06-05 09:30:51 +08:00
    m
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3310 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 04:55 · PVG 12:55 · LAX 20:55 · JFK 23:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.