flask 端口被占用
不正常退出會(huì) 端口被占用
OSError: [Errno 98] Address already in use
解決占用
查詢 5000 端口
netstat -tlnp|grep 5000
刪掉
kill -9 后面的數(shù)字
1、 https 為什么比 http 更安全?
http --> 超文本傳輸協(xié)議 -- 應(yīng)用層 --> 端口80 --> http協(xié)議不適合傳輸一些敏感信息,
比如:信用卡號(hào)、密碼等支付信息。
https --> 安全套接字層超文本傳輸協(xié)議 -- 傳輸層--> 端口443 --> 為了數(shù)據(jù)傳輸?shù)陌踩? HTTPS在HTTP的基礎(chǔ)上加入了SSL協(xié)議,SSL依靠證書來驗(yàn)證服務(wù)器的身份
2、format 格式化字符串的用法?
1.作為拼接字符串進(jìn)行使用
'{}'.format(變量)
2.保留小數(shù)
'{:.2f}'.format(12.333) 保留小數(shù)點(diǎn)后兩位
3.百分比格式
'{:.2%}'.format(0.333)
4.進(jìn)制轉(zhuǎn)換
'{0:x}'.format(20) 轉(zhuǎn)換成十六進(jìn)制
'{0:o}'.format(20) 轉(zhuǎn)換成八進(jìn)制
進(jìn)制轉(zhuǎn)換的時(shí)候用{0:進(jìn)制}
5.對(duì)齊方式 '{a:<10}'.format(a=12.3,b=13.44)
左對(duì)齊,長(zhǎng)度為10 '{a:0>10}'.format(a=12.3,b=13.44)
右對(duì)齊... '{a:0^10}'.format(a=12.3,b=13.44)
居中對(duì)齊... '{a:0<10}'.format(a=12.3,b=13.44)
數(shù)字補(bǔ)x (填充左邊)
6.轉(zhuǎn)義{和}符號(hào)
'{{ hello{0} }}'.format('python’)
f = ' hello {0} '.format
f('python’)
3、簡(jiǎn)述七層協(xié)議 每一層的作用
1.應(yīng)用層 : 與其它計(jì)算機(jī)進(jìn)行通訊的一個(gè)應(yīng)用,它是對(duì)應(yīng)應(yīng)用程序的通信服務(wù)的
2.表示層 : 這一層的主要功能是定義數(shù)據(jù)格式及加密
3.會(huì)話層 : 它定義了如何開始、控制和結(jié)束一個(gè)會(huì)話
4.傳輸層 : 這層的功能包括是否選擇差錯(cuò)恢復(fù)協(xié)議還是無差錯(cuò)恢復(fù)協(xié)議,
5.網(wǎng)絡(luò)層 : 這層對(duì)端到端的包傳輸進(jìn)行定義,它定義了能夠標(biāo)識(shí)所有結(jié)點(diǎn)的邏輯地址,還定義了路由實(shí)現(xiàn)的方式和學(xué)習(xí)的方式。
6.數(shù)據(jù)鏈路層 : 它定義了在單個(gè)鏈路上如何傳輸數(shù)據(jù)
7.物理層 : OSI的物理層規(guī)范是有關(guān)傳輸介質(zhì)的特性,這些規(guī)范通常也參考了其他組織制定的標(biāo)準(zhǔn)
4、Django 中間件具體執(zhí)行流程
執(zhí)行流程:
1、瀏覽器發(fā)送請(qǐng)求
2、Django網(wǎng)站, 產(chǎn)生 request 對(duì)象
3、調(diào)用中間件類中的 process_request
4、url 的匹配(通過 URL 找對(duì)應(yīng)的視圖)
5、調(diào)用中間件類中的 process_view
6、調(diào)用我們自己的視圖 view
7、調(diào)用中間件類中的 process_response
8、process_response 將響應(yīng)內(nèi)容 返回給瀏覽器
五個(gè)中間件的作用?
process_request: 是在產(chǎn)生 request 對(duì)象, 進(jìn)行 url 匹配之前調(diào)用
process_view: 是 url 匹配之后, 調(diào)用視圖函數(shù)之前調(diào)用
process_response: 視圖函數(shù)調(diào)用之后, 內(nèi)容返回給瀏覽器之前調(diào)用
process_exception: 視圖函數(shù)調(diào)用之后, 內(nèi)容返回給瀏覽器之前
如果注冊(cè)的多個(gè)中間件類中包含 process_exception 函數(shù)的時(shí)候, 調(diào)用的順序跟注冊(cè)的順序是相反的
1 進(jìn)入Django中的請(qǐng)求都會(huì)執(zhí)行process_request方法;
2 Django返回的信息都會(huì)執(zhí)行process_response方法.;
5、有return 和 沒有 return 的區(qū)別?
process_request方法不能有return,一定要使用return的時(shí)候,要配合條件判斷語(yǔ)句執(zhí)行
process_response方法一定要有return,否則程序會(huì)運(yùn)行錯(cuò)誤
process_view方法不能有return,否則視圖函數(shù)不會(huì)執(zhí)行
process_exception方法只有在程序出現(xiàn)運(yùn)行錯(cuò)誤的時(shí)候才會(huì)執(zhí)行
process_exception方法設(shè)定return時(shí),程序不會(huì)再執(zhí)行后續(xù)中間件中的process_exception
process_template_response方法只有在視圖函數(shù)中使用render方法返回信息的時(shí)候才會(huì)執(zhí)行
3、Flask 框架第一天所學(xué)知識(shí)
Flask 里面的參數(shù)意義?
name 以當(dāng)前傳入的模塊路徑為家目錄
加載配置有幾種?
1.從配置文件中加載 app.config.from_pyfile('config.cfg')
2.用類的方式加載 class Config(): DEBUG = True
app.config.from_pyfile((Config))
3.本身就是字典 適用于參數(shù)少的 app.config['DEBUG'] = True
run里面參數(shù)的意義?
host='0.0.0.0' 任意一臺(tái)電腦 port=5000 端口 debug=true
一個(gè)視圖可以綁定多個(gè)路由
轉(zhuǎn)換器就是為了匹配路由中的參數(shù)
轉(zhuǎn)換器:
1.整數(shù)
@app.route('/center/<int:uid>')
def center(uid):
return 'your uid is {0}'.format(uid)
2.字符串
@app.route('/center1/<string:uid>')
def center1(uid):
return 'your uid is {0}'.format(uid)
3.float
@app.route('/center4/<float:uid>')
def center4(uid):
return 'your uid is {0}'.format(uid)
4.默認(rèn)轉(zhuǎn)換器
@app.route('/center2/<uid>')
def center2(uid):
return 'your uid is {0}'.format(uid)
5.path轉(zhuǎn)換器
@app.route('/center3/<uid>')
def center3(uid):
return 'your uid is {0}'.format(uid)
自定義轉(zhuǎn)換器
class MyConverter(BaseConverter):
# regex = r'd{5,10}'
regex = r'1[378]\d{9}'
def init(self,map,re):
super().init(map) # 讓父類的init執(zhí)行
self.regex = re