flask框架基礎(chǔ)總結(jié)

一,HTTP協(xié)議 HTTPS協(xié)議 不同 為什么安全馍管?

(1)http協(xié)議是一種網(wǎng)絡(luò)喲傳輸協(xié)議,規(guī)定了瀏覽器和服務(wù)器之間的通信方式。位于應(yīng)用層(傳輸信息都是明文方式,不安全,容易被人攔截更振,篡改)

(2)為了通信安全,使用對(duì)稱加密方式,

(在發(fā)送之前,使用相同的秘匙對(duì)數(shù)據(jù)進(jìn)行加密和解密)(這種方式雖然在網(wǎng)絡(luò)中是以密文呈現(xiàn),但是容易讓人攔截破解,也不算安全.)

(3)使用非對(duì)稱加密方式,

非對(duì)稱加密包含一組秘匙,公匙和私匙:明文可以用公鑰加密,用私鑰解密饭尝,并且只能用私鑰解密肯腕,不能用公鑰解密;也可以用私鑰加密钥平,公鑰解密实撒,并且只能有公鑰解密。

流程如下

a、瀏覽器生成一個(gè)隨機(jī)秘鑰知态。

b捷兰、瀏覽器向服務(wù)器請(qǐng)求公鑰。

c肴甸、服務(wù)器向?yàn)g覽器發(fā)送它的公鑰寂殉。

d、瀏覽器接收服務(wù)器發(fā)送的公鑰原在,并使用公鑰加密隨機(jī)生成的對(duì)稱加密秘鑰友扰,發(fā)送給服務(wù)器。

e庶柿、服務(wù)器接收瀏覽器發(fā)送的數(shù)據(jù)村怪,用自身私鑰解密,得到浮庐,對(duì)稱加密秘鑰甚负。

f、至此审残,瀏覽器和服務(wù)器可以使用對(duì)稱加密秘鑰相互通信梭域。

用這種方式仍然存在隱患,在進(jìn)行第3步和第4步時(shí)候,中間人會(huì)在服務(wù)器放松公鑰給瀏覽器時(shí)候,截取數(shù)據(jù),把公鑰修改成自己的發(fā)送給瀏覽器,這時(shí)瀏覽器就無法驗(yàn)證公鑰的準(zhǔn)確性.

(4)使用httos數(shù)字證書保證數(shù)據(jù)安全

數(shù)字證書是第三方機(jī)構(gòu),給網(wǎng)站唯一身份證明搅轿。

當(dāng)瀏覽器請(qǐng)求公鑰時(shí)病涨,服務(wù)端不單單發(fā)送公鑰,而是發(fā)送包含公鑰的數(shù)字證書璧坟。

瀏覽器解密時(shí)如下:

a既穆、首先查看是否在有效期內(nèi),若失效則不再發(fā)送隨機(jī)對(duì)稱秘鑰雀鹃;

b幻工、找到第三方機(jī)構(gòu)名稱,通過對(duì)照找到第三發(fā)機(jī)構(gòu)公鑰黎茎,解密數(shù)字簽名囊颅,得到一個(gè)hash1值。

c傅瞻、通過同樣的方式迁酸,根據(jù)服務(wù)端網(wǎng)址等信息,使用簽名算法俭正,生成hash2.

d奸鬓、將hash1和hash2,對(duì)比掸读,如果相同串远,則身份驗(yàn)證成功宏多。

e、身份驗(yàn)證成功后澡罚,使用同樣的機(jī)構(gòu)公鑰解密網(wǎng)站公鑰伸但。

f、瀏覽器使用解密后的公鑰發(fā)送對(duì)稱秘鑰給服務(wù)端留搔。

https的主體思想,ip模型上加了ssl層更胖。



二,網(wǎng)絡(luò)七層塔協(xié)議:

七層劃分為:應(yīng)用層、表示層隔显、會(huì)話層却妨、傳輸層、網(wǎng)絡(luò)層括眠、數(shù)據(jù)鏈路層彪标、物理層

物理層:????物理傳輸掷豺、硬件捞烟、物理特性(用于倆個(gè)硬件之間的通訊)

數(shù)據(jù)鏈接層:? ??定義了如何讓格式化數(shù)據(jù)以進(jìn)行傳輸,以及如何讓控制對(duì)物理介質(zhì)的訪問当船。這一層通常還提供錯(cuò)誤檢測(cè)和糾正题画,以確保數(shù)據(jù)的可靠傳輸。

傳輸層:? ? ? 發(fā)送大量數(shù)據(jù)的時(shí)候用,傳輸數(shù)據(jù)包(確保了數(shù)據(jù)的不丟包,但是速度較慢)

網(wǎng)絡(luò)層:? ? ? ?即路由器德频,交換價(jià)那些具有尋址功能的設(shè)備所實(shí)現(xiàn)的功能苍息。這一層定義的是IP地址,通過IP地址尋址抱婉。所以產(chǎn)生了IP協(xié)議。

會(huì)話層:??????會(huì)話層的作用就是建立和管理應(yīng)用程序之間的通信桌粉。?

表示層:? ? 解決不同系統(tǒng)之間的通信語法問題

應(yīng)用層:????用戶使用的都是應(yīng)用程序蒸绩,均工作于應(yīng)用層,互聯(lián)網(wǎng)是開發(fā)的铃肯,大家都可以開發(fā)自己的應(yīng)用程序患亿,數(shù)據(jù)多種多樣,必須規(guī)定好數(shù)據(jù)的組織形式 押逼。(主要功能:規(guī)定應(yīng)用程序的數(shù)據(jù)格式步藕。)

三,format的用法

(1)通過位置:

????print'{0},{1}'.format('chuhao',20)

(2)通過關(guān)鍵字

????print'{name},{age}'.format(age=18,name='chuhao')

? ??class Person:

????????def__init__(self,name,age):

? ??????????????self.name = name

? ? ? ? ? ? ? ??self.age = age

? ??????def__str__(self):

????????????return 'This guy is {self,name},is {self,age} old'? ? ? ? ? ? ? ? ????????.fromat(self.self)

(3)通過映射list

a_list = ['chuhao',20,'china']

print'my name is {0[0]},from {0[2]},age is {0[1]}'.format(a_list)

########? ? ? my name is chuhao,from china,age is 20

(4)通過映射 dict

????b_dict = {'name':'chuhao','age':20,'province':'shanxi'}

????print'my name is {name}, age is {age},from {province}'.format(**b_dict)

(5)填充與對(duì)齊

print'{:>8}'.format('189')

######? ? ? 189

print'{:0>8}'.format('189')

#####? ??00000189

print'{:a>8}'.format('189')

#####? ?aaaaa189

(6)精度與類型f

#保留兩位小數(shù)

print'{:.2f}'.format(321.33345)

#####? 321.33

(7)用來做金額的千位分隔符

print'{:,}'.format(1234567890)

####? ?1,234,567,890

(8)其他類型 主要就是進(jìn)制了,b挑格、d咙冗、o、x分別是二進(jìn)制漂彤、十進(jìn)制雾消、八進(jìn)制灾搏、十六進(jìn)制

print'{:b}'.format(18)? ? #二進(jìn)制 10010

print'{:d}'.format(18)#十進(jìn)制 18

print'{:o}'.format(18)#八進(jìn)制 22

print'{:x}'.format(18)#十六進(jìn)制12


四、Django中間件 具體執(zhí)行流程 有return和沒有return區(qū)別

1立润、執(zhí)行完所有的request方法 到達(dá)視圖函數(shù)狂窑。

2、執(zhí)行中間件的其他方法

3桑腮、經(jīng)過所有response方法 返回客戶端

如果其中一個(gè)中間件里request方法里return了值,就會(huì)執(zhí)行當(dāng)前中間件的response方法,然后返回給客戶? 然后報(bào)錯(cuò),不會(huì)執(zhí)行下個(gè)中間件

列如:

MIDDLEWARE = [

#注意CorsMiddleware要配置在CsrfViewMiddleware前

? ? 'corsheaders.middleware.CorsMiddleware',

'django.middleware.security.SecurityMiddleware',

'django.contrib.sessions.middleware.SessionMiddleware',

'django.middleware.common.CommonMiddleware',

'django.middleware.csrf.CsrfViewMiddleware',

'django.contrib.auth.middleware.AuthenticationMiddleware',

'django.contrib.messages.middleware.MessageMiddleware',

'django.middleware.clickjacking.XFrameOptionsMiddleware',

]

五泉哈、Flask今天的所學(xué)知識(shí)點(diǎn)

1,Flask框架屬于輕量級(jí)框架,只提供最核心的功能.

2,運(yùn)用flask框架時(shí)候

from flask import Flask

'''

__name__:表示當(dāng)前的模塊名字

創(chuàng)建Flask對(duì)象,F(xiàn)lask會(huì)以傳入模塊的位置當(dāng)做家目錄

'''

app = Flask(__name__)

@app.route('/')? # 代表首頁

def hello_world():? # 視圖函數(shù)

? ? return 'Hello World!'? # 返回內(nèi)容

if __name__ == '__main__':

? ? app.run()? # 運(yùn)行程序

瀏覽器地址:127.0.00.1:5000

3,flask參數(shù)

(1)a,? ? # 配置文件

app.config.from_pyfile('config.cfg')

b,? ? ? 配置DEBUG參數(shù)時(shí)候三種方式

字典配置? ?app.config["DEBUG"] = True

對(duì)象上配置? ? app.debug = True

參數(shù)傳入配置? app.run(debug=True)

(2)取參時(shí)候:

函數(shù)中取時(shí):

app.config.get('THST')

current_app.config.get('THST')

函數(shù)外:

app.config["TEST"] = 'test'

4,配置路由

1,只需要在函數(shù)的裝飾器寫入

@app.route('/center')

2,重定向

return redirect(url_for('index'))

3,需要定義請(qǐng)求方式的時(shí)候(mtehods里面加入允許的請(qǐng)求方式)

@app.route('/login',methods=['POST'])

5,轉(zhuǎn)換器

default:????接受字符串破讨,默認(rèn)轉(zhuǎn)換器

stirng:????接受字符串丛晦,跟默認(rèn)一樣

int:????接受整數(shù)

float:????同 int ,但是接受浮點(diǎn)數(shù)

uuid:????唯一識(shí)別碼

path:????和默認(rèn)的相似添忘,但也接受斜線

用到時(shí)候代碼如下:

#整數(shù)形式,要想改變請(qǐng)求地址中center/后面的參數(shù)只需要改變int改為自己允許的形式就好(上面)

@app.route('/center/<int:uid>')? ? ?# 代表個(gè)人中心頁

????????def center(uid):? ? # 視圖函數(shù)

????????????return 'your uid %s' % uid? ? ?# 返回內(nèi)容

請(qǐng)求地址:127.0.00.1:5000:center/1


(2)優(yōu)化轉(zhuǎn)換器(代碼如下)

from werkzeug.routing import BaseConverter

#自定義轉(zhuǎn)換器

class MyConverter(BaseConverter):

????????def __init__(self, map, re):? ????

????????????????????super().__init__(map) # 調(diào)用父類?

? ? ? ? ? ? ? ? ? ? self.regex = re # 轉(zhuǎn)換器的正則規(guī)則

app.url_map.converters['re'] = MyConverter # 注冊(cè)

@app.route('/center/<re(r"\d{5,10}"):uid>') # 代表個(gè)人中心頁def center(uid): # 視圖函數(shù)?

?????????????return 'your uid %s' % uid # 返回內(nèi)容

@app.route('/login/<re(r"1[3456789]\d{9}"):phone>') # 代表登錄頁

def login(phone): # 視圖函數(shù)?

?????????????return 'your phone %s' % phone # 返回內(nèi)容

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末采呐,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子搁骑,更是在濱河造成了極大的恐慌斧吐,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件仲器,死亡現(xiàn)場(chǎng)離奇詭異煤率,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)乏冀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門蝶糯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人辆沦,你說我怎么就攤上這事昼捍。” “怎么了肢扯?”我有些...
    開封第一講書人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵妒茬,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我蔚晨,道長(zhǎng)乍钻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任铭腕,我火速辦了婚禮银择,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘累舷。我一直安慰自己浩考,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開白布被盈。 她就那樣靜靜地躺著怀挠,像睡著了一般析蝴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上绿淋,一...
    開封第一講書人閱讀 51,198評(píng)論 1 299
  • 那天闷畸,我揣著相機(jī)與錄音,去河邊找鬼吞滞。 笑死佑菩,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的裁赠。 我是一名探鬼主播殿漠,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼佩捞!你這毒婦竟也來了绞幌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤一忱,失蹤者是張志新(化名)和其女友劉穎莲蜘,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體帘营,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡票渠,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了芬迄。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片问顷。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖禀梳,靈堂內(nèi)的尸體忽然破棺而出杜窄,到底是詐尸還是另有隱情,我是刑警寧澤算途,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布塞耕,位于F島的核電站,受9級(jí)特大地震影響郊艘,放射性物質(zhì)發(fā)生泄漏荷科。R本人自食惡果不足惜唯咬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一纱注、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧胆胰,春花似錦狞贱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蝎毡。三九已至,卻和暖如春氧枣,著一層夾襖步出監(jiān)牢的瞬間沐兵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來泰國打工便监, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留扎谎,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓烧董,卻偏偏與公主長(zhǎng)得像毁靶,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子逊移,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容