Python社区  »  Django

Django全栈工程师学习资源

Py站长 • 2 月前 • 841 次点击  

Django是现在大量网页开发人员都在使用的一个开源代码Web应用框架,由Python语言写成。自从Django问世以来,它体现的就是一种功能强大的设计理念。Django所坚持的原则就是将很多的库函数与框架结合,从而构造出一个功能强大的Web应用框架,与以往单独使用库函数的方式有所区别。

在Django框架中,包含了大量的库函数。例如:身份验证函数、URL路由函数、一个模版系统、一个对象关系映射(ORM)函数、以及一个数据库migration模块(初始为Django1.7版本)等等。这就是Django框架与传统Web应用框架(如:Flask框架)的不同之处。Flask框架在实现用户身份验证功能时,需要单独使用Flask-Login模块来完成。

功能强大,方便实用和具有良好的扩展性是完成框架构建的,两种截然不同的设计理念。它们之间并没有好坏之分,而是需要网页开发人员根据具体的需求,进行选择使用。

Django实质上是一个帮助网页开发人员完成网页框架搭建的工具。在学习Django开发的过程中,你需要了解它是如何将这些琐碎的功能库揉合在一起的,以及熟悉所有功能库函数的目录表。

为什么网页开发人员尤其青睐Django框架?

在有了网页框架构建这一概念之后的10年时间里,Django取得了长足的发展。项目的性能和稳定性都有了巨大的改善,同时Django框架社区论坛也发展的如火如荼。正是基于这些原因,Django逐渐受到了网页开发人员的青睐,成为了他们在搭建网页框架时的不二之选。很多的程序设计工具书和网页开发网站中,都有大量详细的Django使用教程以及Django开发实例。现在,即使Django已经很成熟了,但设计人员仍在不断地对它进行改进,加入一些重要的新功能,以给使用者提供更好的用户体验。数据库migrations模块就是其中之一。

我极力推荐将Django作为一种更好的Python Web框架构建选择,是因为与其配套的官方文档资料和使用教程是百里挑一的。在这方面,Django可以说是做得最好的。全球的很多城市都拥有自己特定的Django研发团队,例如,Django网络社区、波士顿Django小队以及旧金山Django小队等。这些致力于Django开发的团体,可以为从事Django开发的人员提供技术支持。当网页开发人员遇到Django开发瓶颈时,他们就会挺身而出,给予技术指导。

网络上一直存在着一个争论,即:通过学习使用Django,是不是能够更好地掌握Python?大家对此意见不一。然而,如果你在对网页开发还一无所知的情况下,就盲目地花时间去学习Python这门语言,那么这只会事倍功半,收获甚微。因而,必须先从了解一门语言入手,循序渐进。

关于Django使用教程的介绍:

其实在一些应用程序开发论坛上,你可通过付费的方式,买到一些关于Django的电子版使用教程,而其中有些则可以免费使用。这些教程可作为 Django的入门教材,对你会有一定的帮助。自从10年前Django问世以来,它就一直处在更新换代的过程中。研发人员对其进行了大量的更新,进一步提高了Django的实用性。当你想要获得关于Django的最新更新说明时,你就需要仔细阅读下面的介绍了。在下文中,我将为读者推荐多部与Django相关的使用指导书,希望读者能够认真阅读,特别是对从事Django项目开发的IT人员,更是大有裨益。

1、《Test-Driven Development with Python》

该书主要介绍的是如何使用Django和JavaScript,进行网页开发。本书采用了一个使用Django框架的网站开发实例,来说明如何在网页编写过程中,实现测试驱动开发(TDD)。同时也涉及了NoSQL数据库、Websocket协议以及异步响应的知识。你可在O'Reilly网站上,免费在线阅读此书;或交付一定的费用,购买此书的电子版。

2、《Tango with Django》

本书是最近广受好评的一部Python网页框架搭建教程。用户可在Github社区免费阅读此书的中文版。一些网页开发人员表示,这本书确实让他们受益匪浅,帮助他们摆脱了最初学习网页框架搭建时遇到的瓶颈。最近,它又新增了一些内容,更新了Django1.7版的内容。

3、《The Django Girls Tutorial 》

本书非常容易上手。即使你没有任何关于Python或Django的知识,都能读懂。同时,它还会教你如何开发出自己的第一个网页应用程序。

4、《Two scoops of Django》

此书由Daniel Greenfeld和Audrey Roy共同撰写的。它需要读者付费阅读。但如果你对如何能够正确地使用Django框架非常感兴趣,那么价格应该不是问题,你一定会购买阅读的。

5、《Effective Django》

本书是另一个能够免费阅读的Django框架使用教程。

6、《The Django subreddit》

本书是一部很好的Django工具书,它包含一些关于介绍Django使用方法的网站链接,供读者学习使用。

7《Django Advice Guide》

本书由Steve Losh编写,也是一部很不错的教程。

8、《Lightweight Django》

本书通过几个经典的开发实例,介绍了Django的构成模块。

9、《The Definitive Guide to Django Development》

本书介绍了Django的架构,包括实现自动设置的脚本。

10《Deploying a Django app on Amazon EC2 instance》

本书介绍了一个如何利用Django开发一个适用于亚马逊网站服务的App实例。

11、《step-by-step guide for Django》

本书介绍了如何通过使用AJAX和JQuery,来传输数据。

12、《django-awesome》

本书是一部介绍关于Django功能库和资源库的工具书。

13《Starting a Django Project》

本书能教你如何从零开始,开发一个Django项目。它用了多个实例,向读者展示了如何通过使用Twitter引导程序、请求以及Github API接口,开发一个 Django项目。

14、《The recommended Django project layout》

本书适合刚接触Django网页开发的新手使用。它能教会新手如何在所要开发的app中,设置索引目录和配置文件。

15、《Python Social Auth for Django tutorial》

本书将向你展示如何将社交媒体登录按钮装入你的Django app应用中。

16、《approach to class based views》

Luke Plant在他的这本书中写到的,关于CBVs的介绍,在Django开发社区引发了热议:这些改进是否能缩短项目的开发周期,还是只是做做表面工夫。

17、《How to serve Django apps with uWSGI and Nginx on Ubuntu14.04》 和《How to set up Django with PostgreSQL,Nginx and Gunicorn》

以上两本书详细介绍了网站开发项目过程中的每一个步骤。

18、另外,一篇关于Python和Django的博文中提到,在开发过程中,规划好每一部分项目的所用时间,是非常必要的,这同时也是一个程序员需要养成的良好习惯。

Django教学视频:

你是不是也在网络上寻找一些与上述书籍或文章对应的教学视频?,在后面的链接里,你便可以找到一些很棒的,与Django框架以及网页开发相关的教学视频。

Django中的migration模块:

Paul Hallett曾发表了一篇介绍Django1.7版开发app的指导教程。在这篇博文中,他介绍了自己关于使用Django-twilio工具包的心得体会。

Python真正的migration初始模块,能够找出它与Django1.7版本中的migration模块的不同之处。

Andrew Pinkham所著的《Upgrading to Django-1.7》系列文章,能帮助读者更好地理解新版本中的改动,让读者更好地适应更新之后的Django。读者现在可以免费阅读该系列文章了。

Django中的宕机migration模块向我们展示了一个能够潜在执行的联机migration模式。

Django1.9版本中新增的Django Channels插件:

Django Channels是Django1.9版本中新增的一个插件(一开始是作为一个独立的应用程序,之后纳入了1.10版本的核心框架中)。它能实现浏览器和使用Websocket协议服务器之间的实时全双工通信。

https://blog.heroku.com/archives/2016/3/17/in_deep_with_django_channels_the_future_of_real_time_apps_in_django,链接中的这篇博文将介绍如何在项目中使用Django Channels插件。

在该插件的实例库中,含有一些具有很高的参考价值的开发实例,例如:如何开发一个博客以及一个聊天应用程序的基本代码。

Channels目前使用的是Django现有的认证方案,但《JSON Web Tokens authentication on Django Channels》这篇博文却向我们展示了,如何使用JWT(JSON Web Token)来代替Django Channels插件,也能实现同样的功能。

《Offloading work using Django Channels》是一篇短博文。它通过一个先前的实例,具体讨论了Channels插件的功能。要实现该插件的功能就需要在Django中增加一个稳定的数据传输机制,否则将无法使用Channels。

Django Testing模块:

《Integrating Front End Tools with Django》是一篇很棒的技术帖。它详细介绍了如何使用Gulp来控制在开发过程中使用的前端工具。

当你不知道应该从什么地方开始测试你的程序时,《Getting Started with Django Testing》文章中所讲述的内容,将会给予你帮助。

《Testing in Django》展示了多个如何测试Django程序代码的实例。

《Django views automated testing with Selenium》展示了一些实现Selenium功能实例代码,以及如何在带有Selenium插件的浏览器中进行测试。

带有Angular JS源代码的Django:

《Getting Started with Django Rest Framework and AngularJS》一文详细介绍了带有测试源代码的Djangular应用。

《Building Web Applications with Django and AngularJS》一文介绍了如何将Django作为一个API接口来使用,以及如何将AngularJS作为一个MVC前端工具来使用的操作方法。

《end to end web app with Django-Rest-Framework&AngularJS》一文的4部分内容介绍了如何通过Djangular来编写一个博客应用程序。在Github社区上,有一篇类似的文章《Github repo》,提供了该实例的项目源代码。

Django-angular是Django的一个代码库。设计该代码库是为了在网页前端开发过程中,更好地将Django和AngularJS进行结合。Django-angular在这个过程中,就是起到了一个桥梁的作用。

Django自带的ORM模块:

在Django框架中自带的ORM(对象关系映射)模块被称为“The Django ORM”。读者可在Python object-relational mappers page文章中了解到Django ORM的相关内容。这篇文章是一篇专门介绍Django ORM的使用教程。

静态设置文件和媒体文件:

对于在Django中如何进行静态文件设置以及处理媒体文件,这对刚接触Django的新手来说,有一定的难度。这些带有静态内容网页的源文件,对于弄清如何处理这些媒体文件是有很大帮助的。

《Using Amazon S3 to Store your Django Site’s Static and Media Files》一文详尽地介绍了如何处理静态设置文件和媒体文件。

《Loading Django FileField and ImagesFields from the file system》一文展示了如何从文件系统中加载一个带有文件的模型字段。

《Restricting access to user-uploaded files in Django》一文介绍了一种方法,该方法能为媒体文件建立一个保护机制。

Django项目开源实例:

《Browser calls witj Django and Twilio》介绍了如何编写一个带有Django和Twilio客户端的网页应用程序。该应用程序能将用户的网页浏览器近似地“改造”为一部手机。这听起来非常炫酷!

Txt 2 React展示了一个完整的Django Web应用程序,让用户与用户之间能进行问题的交流与探讨。

Openduty是一种网站状态检测方式。当系统中出现与PagerDuty类似的命令时,它就会向系统发出警报。

Courtside是由《PyCoder’s Weekly》作者编写的一个体育应用App.。

一篇关于介绍Django中互动式语音应答系统(IVR System)的第一和第二部分,将向读者展示如何写出一个非常炫酷的Django应用程序。此外,在另一篇博文中,详细地介绍了开发过程中的每一个步骤。

Taiga是一个以Django为后台,AngularJS为前端而建立的系统管理ԌEԌ߹目模版:

《Caktus Group’sDjango project template》介绍了Django1.6以上版本中的项目模版。 Cookiecutter Django是由Daniel Greenfeld提供的一个模版,它需要与Audrey Roy的Cookiecutter配合使用。采用这一模版能够实现Heroku的功能。

Two Scoops Django project template是由PyDanny和Audrey两位共同编写的。在这篇文章中,提到的支持组建,在上文的《Two Scoops of Django》一书中也有涉及。

Sugardough是基于Mozilla的一个开发模版,它能与cookiecutter兼容。

学习使用Django的步骤:

1、在你的PC系统中安装Django;
2、阅读你所找到的初始教学教程;
3、从模仿你所找到的Django开发实例入手,学习他们的开发思路,试着写出几个自己的开发项目;
4、借助于找到的官方文档说明或其他开源代码,试着写出自己项目中的代码。在这个过程中,你可能会犯很多错,但是不要气馁。在修改一个个错误代码的过程中,你就能逐渐掌握Django项目开发的技能了。
5、反复阅读《Two Scoops of Django》这本书。因为该书介绍了很多非常经典的Django开发实例,会让你学到很多更好的开发方法。
6、再回到自己的项目中,继续修改、测试,总结经验,直到你的Django项目能够投入运行为止。
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/1695
 
841 次点击  
分享到微博
分享
社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
WEB开发
linux   MongoDB   tornado   bottle   Redis   IE   NoSql   DATABASE   MQ   Bootstrap   NGINX   js   其他Web框架   peewee   web工具   Git   zookeeper  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广