天堂呦呦成人AV片国产,精品黄网在线,国产亚洲精品无码,久久99精品色欲国产天美

您現(xiàn)在所在的位置:首頁 >關(guān)于奇酷 > 行業(yè)動態(tài) > Python-web開發(fā)必備的9個知識點

Python-web開發(fā)必備的9個知識點

來源:奇酷教育 發(fā)表于:

Python-web開發(fā)必備的9個知識點

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