还是源于知乎的一个问题:
本人是大三的学生,最近在自学django,水平算是半只脚刚刚入了门。由于本人的英文水平不怎么样,所以一直以来都是靠着一些教学视频和谷歌翻译艰难学习。刚开始什么都不会的时候进展还算快,可是最近我感觉越来越力不从心了,对于一些具体的问题始终找不到办法解决,请问知乎上的大家有过这样的经历吗?你是怎么解决的呢?
对应链接:https://www.zhihu.com/question/59426020/answer/615516853 (点赞走一走,学啥都好上手~)
简单说下我的学习方式,仅供参考。
在正式转到 Python Web 开发之前(2011年的时候)是在写 Java 和一堆其他的语言,毕竟是小公司,啥都做,有啥项目就用啥语言。 之后换了另外一家创业公司,用的 Django,怎么转呢?其实不需要太多时间,对于一个有一些 Web 开发经验的人来说。
新手阶段
刚开始阶段 步骤如下:
- 花两三天的时间看了下《简明 Python 教程》
- 看了下其他同事写的 Django 项目,以及一本在线中译之后的《The Django Book》(现在不推荐看这本书,版本太老了)
- 开始维护项目,看着其他人怎么写我也怎么写。 这个阶段中可以产出项目了,毕竟照猫画虎也不是多复杂,但是对于 Django 以及 Python 的掌握都很有限。
正式上手
后来加入 sohu,算是正儿八经的开始撸 Django 的官方文档,以及 admin 部分的源码(当时的业务有基于 admin 的定制)。
现在回过头来看,学习 Django 比较有效的方式还是去做实际的项目,比如 我会去撸文档、撸源码,是因为发现了项目中有很多我不能 hold 住的东西。另外,入门可能需要看书,但是掌握到一定程度之后还是以官方内容(文档和源码)为主,因为这个才是根本,也会让你在学习上产生滚雪球的效应——随着你越来越熟悉它,你能越来越快的熟悉跟它像的内容。
可以参考我之前的年度总结:
个人回忆录之一年总结(记2012.01至2013.03) | the5fire的技术博客
再往后慢慢掌握了公司中涉及到的技术栈之后,自己用 Django 重写了个人博客系统,一样的技术栈,类似的开发和部署逻辑,不一样的是,在博客系统中可以大胆的做各种尝试,比如始终保持使用最新的版本,无论是 Django 还是 Python。这样可以比在公司中更快的得到升级版本上的一些经验。 当然,再之后,还是不断的撸源码,因为当你对源码有了一定了解之后,会发现,看源码会比看文档更快和直接,尤其是现在各种先进的 IDE 提供了自动补全和跳转到定义的功能。
关于题主最后说到的问题,你可以需用先理解数据的传递流程,从用户注册,到最终写数据库,以及具体写哪些表。理解了表结构,然后在对应到 Django 的 Model 上,对于额外的用户信息,可能需要建一个 OneToOne 的字段,每次更新 User 时,同步更新下对应的 UserProfile ,这部分需要你自己来重写 User Model,参考这里:Customizing authentication in Django
最后广告:
- from the5fire.com微信公众号:Python程序员杂谈