您好,登錄后才能下訂單哦!
這篇文章主要介紹了Django在web開發中的五個誤區,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
相信很多朋友或多或少的都嘗試過用Django或者是Flask來開發網站(以下用Django來做代表)。畢竟用Python做開發的速度就已經快人家好幾倍了,何況是基于Python的web框架,那開發一個網站肯定“咔咔咔“幾下就完成了。然而現實卻是殘酷的,很多人在使用Django的時候,不僅沒有實現”咔咔咔“的效果,相反卻很難使用Django做出一個像樣的網站出來。明明書上講的,網上說的我都會了呀,到底還差在哪里?正所謂聽君一席話,勝讀十年書,今天我們就來聊一聊,為什么有的人學會了Django的各種招式,可還是不會做web開發。如果你覺得我說得對,歡迎下面留言,如果你覺得我說得不對,那就當作笑話笑一笑吧。
其實出現以上問題,是因為有的朋友對Django甚至對web開發的認識不夠清晰。這里我列出了五點,來糾正大家的一些誤區!
誤區一:Django的數據庫操作只是簡單的增刪改查。
很多朋友在網上找一些Django相關的資料學習完后,可以用Django的ORM框架實現一些數據的增刪改查,就覺得仿佛掌握了開啟未來之門的鑰匙,大為喜悅。熟不知這只是初級Django開發工程師的第一步。如果想用Django做出一個像樣的網站出來,你還需要學會更高級的技術。例如:“如何用ORM實現‘查詢沒有學全所有課的同學的id、姓名’等諸類復雜查詢”、“如何提高數據庫操作的效率”、“如何在模型定義的時候選擇合適的字段類型”、“如何定義多級評論模型”、“navie時間和aware時間對數據存取的影響”等。這些你可能之前想都沒有想過的問題,實際上是網站開發中的家常便飯。你若不知道這些技術,如何用他們現你想要的功能?
誤區二:Django的模板是語言是萬能的。
很多同學在學會了DTL(Django Template Language)數據傳遞和渲染后,以為Django的模板語言跟Python一樣強大,可以做復雜的邏輯處理。但是實際上Django的模板語言能力非常有限,他在循環的時候沒有break和continue語句,在最新的Django2.0中甚至不能使用中括號([])語法取字典和列表中的值,更不能使用圓括號(())來執行函數等等。這一切你以為都很正常的代碼,在模板中卻不支持!另外還存在一個誤解就是,DTL可以渲染AJAX異步加載的數據,DTL只是負責生成一個模板,后期再修改頁面,DTL就無能為力了。但也不是說想要實現AJAX異步加載就不能使用DTL,DTL可以配合前端其他模板(比如arttemplate)來實現“加載更多”的功能。
誤區三:不需要了解HttpRequest和HttpResponse對象。
HttpRequest和HttpResponse是Django網絡處理過程中的兩個非常重要的對象。只有對這兩個對象有了足夠細致的了解,才能在寫代碼的時候做到信手拈來。比如要判斷這個請求是否是通過ajax請求我們可以通過request.is_ajax()來判斷,比如想要實現反爬蟲技術,我們可以通過request.META中的key來判斷這個請求是不是由爬蟲發起的。另外,包括session處理,COOKIES數據提取等,都是通過這個對象實現的。而HttpResponse雖然不直接使用,但是我們卻一直在間接使用它或者他的子類,比如想要返回json數據我們不需要json.dumps再傳給HttpResponse,我們可以直接返回一個JsonResponse對象,比如想要實現一個“文件下載”的功能,我們應該在response的響應頭中設置Content-Disposition屬性并標記文件名稱。這些,你都知道嗎?
誤區四:使用Django開發網站,不需要擔心安全問題。
雖然Django已經做得足夠安全了。但是有些地方還是需要我們自己去把握。比如什么是CSRF攻擊,CSRF攻擊會造成什么危害(可以看下我的《CSRF攻擊實現ICBC轉賬》案例),如何防御CSRF攻擊,在表單和ajax中我們該用什么方式來確保沒有CSRF攻擊等。另外還有臭名昭著的XSS攻擊,如果用戶在評論區提交了一串alert(‘hello’);代碼,以后我們渲染這條評論的時候該如何將這個代碼當做普通字符串渲染。如果用戶是可信任的,上傳了“
這是紅色文字
alert(‘hello’);”,想要將“紅色文字”和“alert(‘hello’);”當做普通字符串渲染,而“
”標簽當做代碼渲染,我們又該如何實現?更多的比如還有“SQL注入”、點擊劫持攻擊等。你不學習,都不知道網絡上的世界是這么的危險!
誤區五:做web開發只需要學會Django。
這是對Django誤解最深的一點。很多朋友以為做web開發,只要學會了Django,就能開發出一個優美的功能強大的網站。其實一個網站是由前端和后端組成,前端簡單來講就是瀏覽器中展示的頁面,需要通過HTML+CSS+JavaScript三套組合拳才能實現。另外除了Django和前端,一些第三方功能也是一個網站必備的元素。比如有短信驗證碼的發送、圖形驗證碼、郵件的發送、Memcached緩存優化、分頁技術、視頻加密播放、支付功能、第三方登錄等。擁有這些功能,你的網站才算得上是一個給“人”用的網站!
感謝你能夠認真閱讀完這篇文章,希望小編分享Django在web開發中的五個誤區內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。