Django和Flask的區別

Django走的是大而全的方向,開發效率高。它的MTV框架,自帶ORM,admin後臺管理,自帶的sqlite數據庫和開發測試用的服務器,給開發者提高了開發效率。重量級的web框架,功能齊全,提供一站式的解決思路,能讓開發者不用在選擇上花費大量的時間。
自帶ORM和模板引擎,支持jinja等非官方模板引擎。
自帶ORM使Django和關係型數據庫耦合度高,如果要使用非關係型數據庫,需要使用第三方庫。
自帶數據庫管理app。
成熟穩定,開發效率高,相對於Flask,Django的整體封閉性比較好,適合做企業級網站的開發。python web框架的先驅,第三方庫豐富。
Flask是輕量級的框架,自由靈活,可擴展性,核心基於Werkzeug WSGI工具和jinja2模板引擎
適合做小網站以及web服務的API,開發大型網站無壓力,但是架構需要自己設計。
與關係型數據庫的結合不弱於Django,而與非關係型數據庫的結合遠遠優於Django。
WSGI:web服務器網關接口,是一套協議。用於接收用戶請求並將請求進行初次封裝,然後將請求交給web框架。
實現wsgi協議的模塊:wsgiref本質上就是編寫——socket服務端,用於接受用戶請求(django)
werkzeug,本質上就是編寫一個sock服務端,用於接收用戶請求(django)
uwsgi:與WSGI一樣是一種通信協議,它是uWSGI服務器的獨佔協議,用於定義傳輸信息的類型。
uWSGI:是一個web服務器,實現了WSGI的協議,uWSGI協議,http協議。
CORS和CSRF的區別?
CORS是一個W3C標準,全稱是“跨域資源共享”(Cross-origin resoure sharing)。它允許瀏覽器向跨源服務器,發出XMLHttpRequest請求,從而克服了Ajax只能同源使用的限制。
CSRF主流防禦方式是在後端生產表單的時候生成一串隨機tocken,內置到表單裏成爲一個字段,同時,將此串tocken置入session中。每次表單提交到後端時都會檢查這兩個值是否一致,以此來判斷此次表單提交是否可信,提交過一次之後,如果這個頁面沒有生成CSRF tocken,那麼tocken將會被清空。如果有新的需求,那麼tocken會被更新。攻擊者可以僞造POST表單提交,但是他沒有後端生成的內置於表單的tocken,session中沒有tocken都無濟於事。
nginx 是一個開源的高性能的HTTP服務器和反向代理:
1.作爲web服務器,它處理靜態文件和索引文件效果非常高;
2.它的設計非常注重效率,最大支持5萬個併發連接,但只佔用很少的內存空間;
3.穩定性高,配置簡潔;
4.強大的反向代理和負載均衡功能,平衡集羣中各個服務器的負載壓力應用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章