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項目能夠投入運行為止。
本文由 360安全播報 翻譯
原文連結:https://www.fullstackpython.com/django.html
長按二維碼關注「安全張之家」!
備註:本版所載內容全部來源於網際網路,
如有侵權,請聯繫版主,將立即刪除!