web開發——1.概述

python web開發

1-1 預期目標

l 技能:學習[Django] [Tornado] [Flask]web開發框架

l 經驗:熟悉[門戶網站\在線電商\管理平臺、項目開發]開發流程和處理過程

l 總結:掌握[學習過的所有知識點的]主線!

l 檢測一個技能學會與否的關鍵

n 3W1H

u what?

u where?

u why?

u how?

1-2 開發基礎

要學習web開發,需要掌握的基本技能

l 計算機基礎知識[瞭解]

l 網頁開發[HTML/CSS]

l 網頁動態效果[Js/JQ]

l 網頁快速搭建[Bootstrap]

l 網絡相關知識[傳輸協議]

l 數據庫相關

l 數據相關知識[數據安全(加密解密)]

l 服務器後端web應用程序開發

1-3 回顧:前端開發

HTML:超文本標記語言

超文本:不僅僅能表示簡單的文字

HTML的目的:按照指定的格式在瀏覽器中展示數據

標記/標籤:選擇文本~成對標記/標籤、單標記/標籤

標籤的類型:

行標籤:標籤前後不換行、不能設置寬度和高度[display:inline]

行內塊標籤:標籤前後不換行,可以設置寬度和高度[display:inline-block]

塊標籤:標籤前後自動換行,可以設置寬度和高度[display:block]

常用的標籤:

span\p\br\hn\em\i\

form\input[text/password/checkbox/radio/url/email/..]

CSS:對於HTML標籤選中的內容進行樣式修飾

定位樣式

字體樣式

尺寸樣式

背景樣式

more等等

盒子模型:

傳統盒子模型[使用了一堆標籤 和他們的定位樣式以及內容樣式,操作展示網頁佈局]

盒子:規範網頁佈局的核心

分析盒子的意義——網頁開發——無障礙!

網頁佈局:通過對整體網頁的結構分析,完成盒子的嵌套進行網頁佈局的實現

網頁開發:網頁佈局->顏色填充->部分網頁佈局->顏色填充->..->內容填充

網頁快速開發:

網頁開發流程:

產品:UI設計網頁-> [產品經理]-> 前端開發網頁-> [產品經理 交付]

工具:BS快速搭建網頁-> 開發後端程序-> 部署運行

web階段:

Django 3周 [2+1]

Tornado 1周[4+1]

Flask 1周[1+4]

web概述[web基礎]

Django 入門[快速瞭解]

Django-----

1. web概述

web:網絡

網絡:多臺互相連接的計算機組成的可以通信的一個組成部分——網絡

規模比較小:局域網

規模較大:城域網

規模很大:[相對於全球——天朝]大城域網

規模相當大:全球網絡~廣域網

web軟件:網絡軟件

2. 軟件的分類

軟件:一種可執行的計算機指令的集合——程序!程序的宏觀體現:軟件

>> 理解:所謂軟件,就是在電腦上安裝的可執行的應用程序!

>> 社交軟件:QQ、微信、陌陌、釘釘、微博、Facebook..

>> 辦公軟件:Mircosoft office、金山office、…

>>> 辦公系統:OA系統

>> 網絡軟件:更多的指代動態網站

根據軟件的使用是否需要聯網:[爲什麼要用軟件!]

1) 單機軟件:軟件的使用不需要聯網,如CS1.6、紅警、office、畫圖、掃雷

a) 不會被取代,但是使用受到很大的侷限

2) 網絡軟件

a) 會越來越流行——【重點】

根據軟件使用過程中是否需要下載安裝包

1) C/S結構:Client-Server 客戶端服務器軟件

a) 在自己的客戶端電腦上,下載一個安裝包程序,安裝軟件之後,才能正常使用軟件提供的各種功能

b) QQ

c) 特點1:軟件需要的所有文件,都直接從本地安裝文件夾中獲取,速度和效果很好

d) 特點2:軟件如果有新功能更新,需要重新下載安裝包

2) B/S結構:Browser-Server瀏覽器服務器軟件

a) 在自己的客戶端電腦上,只需要有一個瀏覽器,就可以使用軟件提供的各種功能

b) 淘寶

c) 特點1:軟件需要的所有文件,都需要通過網絡進行獲取,速度和效果較較好

d) 特點2:直接在服務器端更新,客戶端不做任何處理就可以使用新功能!

3) 目標:當網速不在是問題,B/S結構的軟件會是現在和將來的趨勢

a) 重點:B/S結構的網絡軟件

關於網站:

網站:通過瀏覽器中輸入Url地址訪問的在線的服務,稱爲網站

靜態網站:純網頁,網頁中的內容是固定的,不會變化的!將單純的這樣的網頁部署在網絡服務器中,其他人就可以通過瀏覽器進行訪問查看,這樣的網站成爲靜態網站,主要用來進行信息展示:學校門戶網站

動態網站:數據在網頁中,是動態添加上的,並在網站的使用過程中,會伴隨着大量的數據動態處理過程!

網頁中的數據是動態添加和變化的[商品詳情頁],並且網站中有大量的數據處理過程、這樣的網站稱爲動態網站,也稱爲web軟件[web應用程序]

PS:動畫網頁和動態網站

動畫網頁:是網頁中有動畫特效,但是所有的數據內容都是提前在網頁中固定寫好的!

動態網站:網頁中可能會沒有動畫,但是數據是動態添加的,並且會有數據運算和交互

網絡傳輸協議

什麼是協議?

數據交互的雙方,爲了保障數據正確的傳輸,而協商計議的一種數據交互方式

發送方[發送數據(操作方式)]à 接受方[接受數據(操作方式)]

不管什麼樣的處理操作方式,數據本身都不會發生變化

發送的數據,如果接收方沒有做正確的處理,會產生[亂碼]

爲什麼要有協議?

目的:爲了保障數據的正確傳輸[發送正確、接受正確、展示正確]

原因:因爲數據的傳輸,實在不同的個體之間進行傳輸的,不同的個體處理數據的方式可能不一致~必須通過協議讓數據傳輸的雙方按照一致的操作來處理數據

協議是怎麼制定的?

網絡互聯非盈利組織[OSI]~歐洲計算機制造協會聯盟[ISO]—>制定了一套協議標準

ISO/RM七層協議標準[簡化的4層協議標準]

所有編程語言的發展史à 標準的 制定史

常見的都有什麼協議?

FTP/TFTP/...

協議是專門用來格式化定義數據傳輸的~傳輸數據~傳輸端口

協議怎麼使用?

在具體的功能開發過程中,軟件開發時約定使用

HTTP:超文本傳輸協議~約定使用80端口;FTP[20/21];SSH[22];

HTTPS[443]

再說HTTPS

請簡單描述HTTPHTTPS的區別?

請簡單描述數據安全方面,關於數據加密的一些手段?

先說加密:

l 什麼是加密

加密:通過一定的數據算法,將原始的數據進行混淆運算,生成了一種和原始數據不一致的數據,~這個新生成的數據,就是被加密的數據

加密的核心:算法

明文:原始數據

密文:加密後的數據

l 加密的方式

單向加密:只需要加密,不需要解密的方式,如~用戶登錄密碼[新用戶註冊時,輸入了賬號+密碼,將用戶的賬號+(加密的密碼)存儲到數據庫;用戶登錄時,輸入賬號+密碼,將用戶輸入的賬號+(加密的密碼) 和 數據庫中的賬號+(加密的密碼) 進行比較,相同則登錄成功—就可以對用戶的登錄密碼進行保護]

雙向加密:需要加密,同時需要解密的方式,如~用戶在電商網站進行支付操作時,需要輸入支付密碼~爲了保證安全性,需要對支付密碼進行深層加密之後進行傳輸,服務器獲取到被加密的支付密碼~需要解密之後,再調用支付寶接口進行支付操作!

雙向加密~根據不同的加密解密方式,可以區分爲兩種操作

對稱加密:加密和解密使用同一套祕鑰[算法的核心]

非對稱加密:加密和解密使用不同的祕鑰,典型應用如HTTPS的加密通道

再說HTTPS:使用數字簽名證書SSL提供了數據傳輸安全通道的HTTP協議

再說加密:

爲了提高數據的安全性,並不一定對於明文數據直接加密,而是通過各種算法組合、迭代加密次數、添加鹽值混淆的手段,提高數據的安全性

明文:”admin”

加密:1混淆鹽值:’manager’~2迭代加密md5()加密1880次~3得到最終數據

開始進入web的世界!

目的:數據共享

通過提供服務器,在服務器上承載共享的數據,讓在網絡中的其他計算機可以分享到服務器上的數據,web數據共享

術語:

服務器:提供服務訪問的機器

硬件服務器:如個人PC、刀片等等

軟件服務器/web服務器:安裝在操作系統上,專門提供數據訪問服務的軟件,如網絡編程時開發的服務端程序、比較成熟的服務器~tomcat/tomee/apache/nginx/uwsgi..

客戶端:作爲服務器的用戶存在的終端~客戶端[訪問客戶所在的終端]

訪問服務器的所有的用戶,可以是PC、平板、手機、…

主機名稱:HOST~在網絡中工作的一臺PC的名稱,在網絡中通常通過IP表示

域名:IP地址的一種簡易記憶方式~通過自然人比較容易記憶的字符串,替代了複雜的ip地址,如:www.baidu.com-> [DNS域名解析] ->115.239.211.112

端口:應用程序和網絡進行通信的接口

資源路徑:訪問的具體的文件夾路徑http://www.baidu.com/index.html

web項目結構

web項目:【服務端】

兩部分[服務器 | web應用程序(web app)]

l 開發接口函數

def app(env, response):

# env:環境參數,包含了請求中的所有信息

# response:響應參數~包含了響應中可以設置的數據

response(“200 OK”, [(“Content-type”, “text/html”)])

msg = “這是一條數據”

return [msg.encode(“gbk”)]

注意:就是一個普通函數,這個普通函數被加載到服務器中變成了當前web應用程序的接口函數

l 開發服務器

from wsgiref.simple_server import make_server

# 創建服務器對象make_server(HOST, PORT, FUNCTION)

server = make_server(“”, 8000, app)

# 啓動服務器

server.serve_forever()

使用了內置的實現了wsgi網關接口協議的服務器

開發比較簡單!

>明天的開發,會更加簡單!

最底層[C/C++]à python開發[網絡編程]à 內置[wsgi]à 開發服務器

擴展1:關於請求方式

請求:客戶端通過url地址向服務器發送的一次數據成爲請求[request]

HTTP1.1標準中,制定了8種請求方式,常見的有四種請求方式,常用的有兩種請求方式

GET:向服務器請求獲取數據

POST:向服務器提交[更新]數據

PUT:向服務器提交[添加]數據

DELETE:向服務器請求刪除數據

HEADER:

OPTIONS:

CONNECTION:

TRACE:

備註:HTTP1.1標準中,定義了不同的請求方式表示不同的含義,其實在項目實際操作過程中,最常用的就是GET/POST兩種方式,都是和服務器進行數據交互的!

擴展2:請求狀態碼

在計算機程序開發過程中,NB人喜歡使用整數的方式表示特定的含義

web開發過程中,請求返回數據結果,也會有一種錯誤碼方式展示請求結果

200:表示請求成功

402:請求需要收費

403:請求被禁止訪問

404:請求的資源沒有找到

500:表示服務器出錯了

【重要】

概念題[面試題]

² 請簡要描述HTTPHTTPS請求協議的區別?

² 請描述常見的web開發技術,描述不同的開發語言的開發優勢?描述pythonweb應用開發方面的優勢?

² 什麼是WSGI

² 什麼是web接口?

操作題

可以獨立開發wsgi接口支持的web應用程序[demo01.py]

可以參考開發無常薄 小應用程序[不同的請求URL,處理不同的功能]

擴展題

請簡要描述get請求方式和post請求方式的區別!

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