資源|Django全棧工程師學習

2021-02-15 安全張之家

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


長按二維碼關注「安全張之家」!

備註:本版所載內容全部來源於網際網路,

如有侵權,請聯繫版主,將立即刪除!

相關焦點

  • 寵物與牛-全棧工程師的神話與謊言
    最近幾年,在軟體開發(尤其是Web開發)領域,「全棧工程師」成為了開發者津津樂道的熱詞。你或許會聽到這樣一些話語:「我正在學習全站開發」,「我是全棧工程師」,」我們正在招聘全棧工程師「。那麼,」全棧「到底意味著什麼?出自什麼地方?具體含義是什麼?帶著這樣三個問題,我們將一步步去揭露全棧工程師的神話與謊言。
  • 全棧工程師會是未來的發展趨勢嗎?
    最近,網上很流行一個詞:全棧(Full Stack)工程師,也可以叫全端工程師,無論是前端知識,還是後端架構你都要了解。甚至有些調皮的程式設計師這樣理解全棧工程師:全棧工程師=屌絲戰鬥機=系統+網絡+研發+dba+架構+安全=沒女朋友、拿一份工資做三份事情的典型、每個站長都是一個全棧工程師,每個站群的站長都是超級全棧工程師。
  • 老焦專欄|為什麼我們要成為全棧工程師?
    點上方綠標可收聽文章音頻最近我身邊的幾個技術專家都在學習前端技術(VUE)的開發,為什麼他們要學習前端技術呢?因為隨著軟體技術的發展,全棧工程師已然成為未來發展趨勢,對大部分技術人而言,需要既懂後端技術,又能進行前端開發,成為全棧工程師。
  • 什麼是全棧工程師?全棧開發者的優缺點?
    全棧工程師,就是前端、後端甚至運維都能統統拿下的全能開發工程師,能利用多種技能獨立完成產品的人。全棧開發者本身是音譯過來的,叫做Full Stack Developer,也就是「全能開發者」,通俗點說就是自己能搞定一套系統(C/S、B/S、App、前端、後端、運維)。全棧開發者/全棧工程師,通常指的是Web開發中的前後端都會的開發者。
  • 全棧工程師有什麼發展前景?
    全棧工程師是同時擁有前端開發技術及後端開發技術的人,他們既能寫前端代碼,也能寫後端代碼,能夠獨立完成前後臺的搭建,並能利用多種技能獨立完成產品的人。全棧工程師是現在非常吃香的一個職業,也有越來越多的人想要轉行做全棧。
  • 全棧工程師到底有沒有前途?
    「少壯不努力,老大當全棧」,和高大上的數據工程師、架構師、算法工程師比起來,全棧工程師似乎就是個打雜的。但你見過一家公司的研發團隊全是全棧工程師的情況嗎? 道哥隨女朋友來到北京三年多了,在一家創業公司的早期就加入了,已經是該公司的技術骨幹。
  • 全棧開發工程師需要具備哪些能力
    什麼是全棧開發工程師呢?開發工程師的種類是很多種,很多人在企業招聘中會看到全棧工程師的招聘。很多人覺得這種職位可望不可即,並且用人單位也很難找到這樣一個人。什麼是全棧工程師?成為全棧開發工程師需要具備哪些能力呢?下面小編為大家具體介紹。
  • 全棧軟體工程師TinyURL項目實戰訓練營(第3期)
    你需要的是一個可以提供專業教師資源與學習資源的團隊,強大的線上線下學習社區,一套快速有效的學習方法,和一個專業到無法挑剔的課程資源。太閤重磅推出的全棧軟體工程師項目實戰訓練營(第3期)開課啦!其次是Node.js以及相關架構的發展,使得程式設計師學習全棧開發的難度降低,只用掌握JavaScript一門程式語言就能夠完成全棧的開發。最後是創業熱潮的興盛與資本低潮,創業熱伴隨大量的新的小型項目的需求,但資本低潮使得不再是PPT與Prototype就能吃遍天下。創業者需要能夠快速實現Production級別的Application上線來獲得用戶。Q:你所理解的全棧工程師是怎樣的?
  • 全棧工程師市場供不應求,掌握需要學多久?
    IT學習交流群 市場的供不應求導致全棧工程師崗位薪資水漲船高,且在各行各業的大中小型企業中都很搶手,就業方向非常廣。既可走技術路線,也可走管理路線。那全棧工程師需要學多久?今天我們一起來探討一下這個問題。
  • 全棧工程師能夠做什麼工作
    全棧工程師是指掌握多種技能,能運用多種技能獨立完成產品的人,也稱全端工程師。總之,全棧工程師需要具有前端開發和後端編寫代碼的能力。他們幾乎集合了前後臺相關的技能,比如普通的WEB前端工程師,Java開發工程師等等。那麼全棧工程師能夠做什麼工作呢?
  • python程式設計師嘔心瀝血整理 Django 優秀資源大全
    django-analytical, star:465 - 用一個通用接口來集成各種分析服務,無需修改模板文件。資源管理有助於管理項目資源文件的包。django-compressor, star:1862 - 將通過連結及內聯的 javascript 或 CSS 壓縮成單個緩存文件。
  • 成為Web前端全棧工程師,工資竟然這麼高!
    近幾年來網際網路的不斷發展,web前端開發不斷被企業看重,很多企業是需要用到這門技術開發的,但同時,現在的企業更希望能夠招聘到既能夠完成前端開發,又對後端具備一定程度了解的全棧工程師。由於全棧工程師目前市場上相對較少,企業招不到人,所以就出現薪資一路上漲情況,使得相關崗位平均薪資一直處在高位!
  • 想成為全棧工程師,要做到哪幾點?
    阿里妹導讀:如何成為一名全棧工程師?需要具備哪些技術積累?成為全棧工程師有哪些好處?
  • 全棧工程師終極修煉指南
    大勢所趨的全棧開發,一部指南助你升職加薪,走上人生巔峰……據 Stack Overflow 2016 Developer Survey 調研,全棧網絡開發是目前最受歡迎的開發職業。難怪現在有幾十個在線的或者個人版程序來幫助人們成長為全棧開發員,甚至可以協助新加入的開發人員找到更高薪的編程工作。
  • 為什麼你不需要做一名全棧工程師?
    這種新品種的全棧工程師可以和一支團隊一樣完成整個任務的 環。當這個項目做大了,全棧工程師可以實現一個人在應用的所有層加一個功能,這樣就減少了和不同層的人溝通的通信成本,從而加速功能交付。如果你建的網站是上面這樣的全棧模型,找到全棧工程師可以有效地解決問題。但是現如今,我認為,這並不是夠格的全棧工程師。***張圖才是更全面的全棧。
  • 全棧工程師為什麼越混越困難,看這篇就夠了
    最近跟朋友聊天,經常聊到全棧工程師,我就問他們為什麼要成為全棧工程師?技術派的回答:「全棧工程師,前後端技術都會,感覺很牛!」,職業派的回答:「全棧工程師很多公司都需要,不擔心工作找不到,工資也比普通的工程師高。」,跟風派的回答:「我好多朋友都想當全棧工程師,都說全棧工程師很好。」 有時候,我就賤賤的問他好在哪裡?他當場傻了,回答不上來。
  • 想成為全棧工程師,你要做到哪幾點?
    想成為全棧工程師,你要做到哪幾點? 如何成為一名全棧工程師?需要具備哪些技術積累?成為全棧工程師有哪些好處?希望本文能為期望成為全棧工程師的同學提供一點幫助,和同學們一起分享交流。
  • 技術博客 | 全棧工程師修煉手冊
    全棧並不是毫無章法的遍地開花,好的學習計劃與方法可以事半功倍,以下是我總結的幾點經驗 ▶一到多再到一從編程入門開始,先花一至兩年時間熟練掌握一門主流的程式語言。不過總體來說,全棧工程師與創業公司或是發展期公司才是最佳組合。 ▶移花接木學技術要了解其思想,而不要留於表面形式。優秀的技術思想會從它的發源地流向其他領域。例如,前端的 MVC 結構在後端一樣適用。
  • 免費機器學習課程爆紅:從概率與統計到全棧深度學習,英偉達工程師小姐姐整理
    來自 | 量子位有一份適合按順序依次學習的免費機器學習資源,在Twitter上火了。
  • 關於全棧工程師,你應該知道這些基本常識
    =======華麗的分界線========= 最近有好多網友問我關於全棧工程師的事情,從大家的口氣中,能聽出大家都認為全棧工程師是一個非常高大上的名詞,呵呵,那麼就應大家要求,來說一說全棧工程師,一起來了解一下,來掀開全棧工程師的這層面紗,看看到底是什麼樣一個情況。