Py学习  »  Django

全栈工程师系列之Django学习

支付小哥 • 7 年前 • 3382 次点击  

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为前端而建立的系统管理工具。

Django项目模版:

《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/1672
 
3382 次点击  
文章 [ 1 ]  |  最新文章 7 年前
掉包虾
Reply   •   1 楼
掉包虾    7 年前

很好, 赞