一些 Django 学习指南

2016-11-14 00:12:30 +08:00
 phithon

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 的人多不多,多的话可以拉个学习小组,有心的同学可以组织一下~

5485 次点击
所在节点    Python
9 条回复
nowhy
2016-11-14 00:21:48 +08:00
mark 谢谢推荐
hujianxin
2016-11-14 00:23:12 +08:00
非常好!
hujianxin
2016-11-14 00:25:32 +08:00
我平时也用一些 Python ,如果写用 Python 写 Web 的话,我只用 Django 。
现在在我这里, Django 唯一的问题是官方没有对 MongoDB 进行支持,虽然可以通过其他的方案进行解决,但是总有一些让人不爽的地方。
linuap
2016-11-14 07:44:42 +08:00
mk,最近有点想造个不一样的轮子玩儿
ansheng
2016-11-14 08:54:54 +08:00
mark ,同需要小組。
dyhbrewer
2016-11-14 10:06:44 +08:00
太感谢了,正在啃 Tango with Django
lcy
2016-11-14 10:14:13 +08:00
mark
amustart
2016-11-14 14:17:44 +08:00
感谢,原来是时雨牛啊
alittlewhitea
2018-06-05 09:30:51 +08:00
m

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

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

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

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

© 2021 V2EX