Python-web開發必備的9個知識點
來源:
奇酷教育 發表于:
Python-web開發必備的9個知識點
一、什么是web軟件?
軟件開發,web軟件,是一種基于萬維網為其數據交互基礎的計算機軟件。
主要目的是高效率的跨平臺跨地區數據共享
二.C/S和B/S架構
C/S指Client/Server,即客戶端/服務器。
客戶端和服務器是兩個應用程序,通常部署在兩臺不同的計算機上。
客戶端和服務器通過網絡進行通信,充分利用本機資源處理相關數據,只在網絡中傳輸必要的數據。
客戶端負責將客戶請求提交給服務器,再將接收到的響應結果顯示給用戶。
服務器接收來自客戶端的請求,進行相應的計算處理,然后將結果返回給客戶端。
B/S指Browser/Server,即瀏覽器/服務器。
B/S架構將Web瀏覽器作為客戶端應用軟件,是一種特殊的C/S架構。
三、web軟件開發
B/S結構的網絡軟件的開發,一般稱為web軟件的開發
在B/S結構網絡軟件開發包括 前端開發與后端開發
前端開發人員負責數據的表現,以及交互方式
后端開發人員需要根據前端操作以及業務邏輯處理系統數據
四、HTTP與HTTPS
HTTP,HyperText Transfer Protocol,是互聯網上應用最為廣泛的一種網絡協議。
設計HTTP最初的目的是為了提供一種發布和接收HTML頁面的方法。
是一個基于TCP/IP通信協議封裝的應用層的協議
什么是HTTPS
Https并非是應用層的一種新協議。只是http通信接口部分用SSL(安全套接字層)和TLS(安全傳輸層協議)代替而已。即添加了加密及認證機制的HTTP稱為HTTPS(HTTP Secure).
http相當于裸奔 沒有安全性
HTTP和HTTPS協議的區別:
1,HTTPS更安全:HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,要比HTTP協議的信息明文傳輸安全;
2,HTTPS需要申請證書:HTTPS協議需要到CA申請證書,一般免費證書很少,需要交費,費用大概與.com域名差不多,每年需要大約幾十元的費用。而常見的HTTP協議則沒有這一項;
3,端口不同:HTTP使用的是大家最常見的80端口,而HTTPS連接使用的是443端口
為什么需要HTTPS
HTTP是明文傳輸的,也就意味著,介于發送端、接收端中間的任意節點都可以知道你們傳輸的內容是什么。這些節點可能是路由器、代理等。
舉個最常見的例子,用戶登陸。用戶輸入賬號,密碼,采用HTTP的話,只要在代理服務器上做點手腳就可以拿到你的密碼了。
用戶登陸 --> 代理服務器(做手腳)--> 實際授權服務器
在發送端對密碼進行加密?沒用的,雖然別人不知道你原始密碼是多少,但能夠拿到加密后的賬號密碼,照樣能登陸。
五、請求與響應
瀏覽器作為HTTP客戶端通過URL向HTTP服務端即WEB服務器發送所有請求。
Web服務器根據接收到的請求后,向客戶端發送響應信息。
HTTP協議定義Web客戶端如何從Web服務器請求Web頁面,以及服務器如何把Web頁面傳送給客戶端。
HTTP協議采用了請求/響應模型。
客戶端向服務器發送一個請求報文,請求報文包含請求的方法、URL、協議版本、請求頭部和請求數據。
服務器以一個狀態行作為響應,響應的內容包括協議的版本、成功或者錯誤代碼、服務器信息、響應頭部和響應數據。
HTTP 請求/響應的步驟:
1、客戶端連接到Web服務器
2、發送HTTP請求
3、服務器接受請求并返回HTTP響應
4、釋放連接TCP連接
5、客戶端瀏覽器解析HTML內容
六、Web框架
l Web框架:是一組Web開發工具包,它封裝了底層的數據庫訪問、協議、線程等細節,使Web開發人員專注于業務邏輯設計
Python Web框架
l 1.Django
l Django是Python世界中最出名、最成熟的Web框架。Django功能全面,各模塊之間結合緊密。
l Django提供了豐富、完善的文檔,幫助開發者快速掌握Python Web開發技巧,并及時解決學習中遇到的各種問題。
l 2.Flask
l Flask是一個用Python實現的輕量級Web框架,被稱為"微框架"。Flask的核心簡單,通過擴展組件增加其他功能。
l 3.Web2py
l Web2py是一個大而全,為Python提供一站式Web開發支持的框架。它旨在快速實現Web應用,提供快速、安全以及可移植的數據庫支持,Web2py兼容Google App Engine。
l 4.Bottle
l Bottle是一個簡單高效的遵循WSGI的微型Python Web框架,它只有一個文件,除Python標準庫外,它不依賴于任何第三方模塊。
l 5.Tornado
l Tornado的全稱是Tornado Web Server,它既可用作Web服務器,也可作為Python Web框架。Tornado最早用于FriendFeed、FaceBook等社交網站。
七、MVC:
大部分開發語言中都有MVC框架
MVC框架的核心思想是:解耦
降低各功能模塊之間的耦合性,方便變更,更容易重構代碼,最大程度上實現代碼的重用
l Model(模型):
l 用于封裝應用的數據和數據處理方法。模型只提供功能接口,視圖只能通過接口來訪問模型功能。
l View(視圖):
l 用于實現用戶界面,負責數據的顯示,完成與用戶的交互。在早期的Web應用中,視圖是由HTML元素構成的界面。
在新的Web應用程序中,XHTML、XML/XSL、CSS、DHTML等新技術也用于構成Web界面。
l Controller(控制器):
l 根據用戶輸入調用模型和視圖完成相應處理。控制器相當于調度中心核心,它本身不產生數據,只是接收請求并決定調用哪個模型來處理請求,然后再確定用哪個視圖來顯示結果。
l 常見的MVC架構:
l C++語言的QT、MFC、gtk
l Java語言的Struts、Spring
l PHP語言的ZF
l 微軟的.NET MVC
l Python語言的Django
八、MVT
Django是一款python的web開發框架
與MVC有所不同,屬于MVT框架
m表示model,負責與數據庫交互
v表示view,是核心,負責接收請求、獲取數據、返回結果
t表示template,負責呈現內容到瀏覽器
九、ORM
對象-關系映射(Object/Relation Mapping,簡稱ORM)
幾乎所有的程序里面,都存在對象和關系數據庫。
通常在業務邏輯層和用戶界面層中,我們是面向對象的。
當對象信息發生變化的時候,我們需要把對象的信息保存在關系數據庫中。
面向對象是從軟件工程基本原則(如耦合、聚合、封裝)的基礎上發展起來的,
而關系數據庫則是從數學理論發展而來的,兩套理論存在顯著的區別。
為了解決這個不匹配的現象,ORM 技術應運而生。
ORM技術可以把對象模型表示的對象映射到基于SQL的關系模型數據結構中去。
對象-關系映射(ORM)系統一般以中間件的形式存在,主要實現程序對象到關系數據庫數據的映射。