————哈嘍蹋辅,大倩倩又來(lái)啦 ???♀????♀????♀?
——-——求賞求關(guān)注_微信公眾號(hào):倩倩小幸Hu
日常嘮叨
在我的理解看來(lái)留攒,F(xiàn)lask 就是結(jié)合 Python 和 HTML 編寫(xiě) web 頁(yè)面猾昆。
1)Python 用來(lái)編寫(xiě) URL、返回結(jié)果仲智;
2)HTML 編寫(xiě)頁(yè)面參數(shù)沉帮;
3)通過(guò)網(wǎng)頁(yè)端訪問(wèn) WEB 頁(yè)面;
下面就大概講講 Flask 的使用珍剑,我覺(jué)得我就掌握了點(diǎn)皮毛掸宛,歡迎各位補(bǔ)充分享。
1招拙、什么是 Flask
Flask 是一個(gè)輕量級(jí)的可定制框架唧瘾,使用 Python 語(yǔ)言編寫(xiě),較其他同類型框架更為靈活别凤、輕便饰序、安全且容易上手。
Flask 框架的主要特征是核心構(gòu)成比較簡(jiǎn)單规哪,但具有很強(qiáng)的擴(kuò)展性和兼容性求豫,程序員可以使用 Python 語(yǔ)言快速實(shí)現(xiàn)一個(gè)網(wǎng)站或 Web 服務(wù)。
2由缆、安裝 Flask
pip install flask
3注祖、實(shí)例 1
- 打開(kāi) Pycharm 編輯器,新建一個(gè) py 文件均唉。如:demo.py
from flask import Flask
#當(dāng)前模塊實(shí)例化一個(gè)Flask對(duì)象
app=Flask(__name__)
#掛載接口地址
@app.route('/add')
#寫(xiě)個(gè)函數(shù)
def add():
a=1
b=2
return a+b
if __name__=="__main__": #如果是從本模塊運(yùn)行的就運(yùn)行下面的
app.run()
-
運(yùn)行文件是晨,出現(xiàn)下述的結(jié)果說(shuō)明運(yùn)行成功
訪問(wèn):http://127.0.0.1:5000/add,就可以看到返回結(jié)果了~~
這里需要注意的地方是:return 返回的是 str 格式舔箭,否則會(huì)報(bào)錯(cuò)U纸伞!
4层扶、實(shí)例 2
上述是一個(gè)比較簡(jiǎn)單的 Flask 的寫(xiě)法箫章,下面給大家講講如何利用 Flask 發(fā)送 POST/Get 請(qǐng)求.
- 打開(kāi) Pycharm 編輯器,新建一個(gè) py 文件镜会。如:demo1.py
from flask import Flask,request,jsonfy
#當(dāng)前模塊實(shí)例化一個(gè)Flask對(duì)象
app=Flask(__name__)
@app.route('/sub1',methods=["post",'get']) #接口類型
def reduce():
a = request.json.get('a')
b = request.json.get('b')
final = int(a) - int(b)
print(final)
return jsonify({"code":1,"msg":"成功","result":str(final)})
if __name__=="__main__": #如果是從本模塊運(yùn)行的就運(yùn)行下面的
app.run()
如上述寫(xiě)法檬寂,jsonfy 是 Flask 下讓其返回為 json 格式;此時(shí)我們可以通過(guò) PostMan 工具進(jìn)行訪問(wèn)~~
5戳表、實(shí)例 3
拓展:
當(dāng)我們寫(xiě)一個(gè)接口時(shí)桶至,針對(duì)不同的輸入結(jié)果會(huì)有不同的返回值昼伴,那 Flask 框架下怎么具體操作呢?來(lái)來(lái)來(lái)~~
比如上訴寫(xiě)的減法可能會(huì)出現(xiàn)的情況:
1.a=39,b=12 27
2.a=10 ,b 參數(shù)缺失
3.a='abc',b=3 參數(shù)必須為 int
...........等等情況镣屹。
from flask import Flask,request,jsonfy
app=Flask(__name__)
@app.route('/sub2',methods=["post"]) def reduce():
a = request.json.get('a')
b = request.json.get('b')
if a is None or b is None:
return jsonify({"code":0,"msg":"參數(shù)缺失","result":None})
if not isinstance(a,int) or not isinstance(b,int):
return jsonify({"code": 1, "msg": "參數(shù)必須為Int類型", "result": None})
final = a-b
return jsonify({"code":2,"msg":"成功","result":str(final)})
if __name__=="__main__": #如果是從本模塊運(yùn)行的就運(yùn)行下面的
app.run()
寫(xiě)完后繼續(xù) POSTMAN 調(diào)用查看是否成功:
6圃郊、實(shí)例 4
下面給大家講講 Flask 編寫(xiě) HTML 網(wǎng)頁(yè)。
1女蜈、新建文件夾:templates[固定寫(xiě)法]
2持舆、新建 login.html[放在templates中]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!-- 新 Bootstrap4 核心 CSS 文件 -->
<link rel="stylesheet" >
<title>Title</title>
</head>
<body>
<h1>接口測(cè)試報(bào)告<h1>
<h2>執(zhí)行人:{{tester}}<h2> #2個(gè)括號(hào)表示變量
<p>成功:{{pass_NO}}</p>
<p>失敗:{{fail_NO}}</p>
<table class="table">
<div class="container">
<tr><td>用例名稱</td><td>執(zhí)行結(jié)果</td></tr>
{% for item in data %}
<tr><td>{{item['case']}}</td><td>{{item['result']}}</td></tr>
{% endfor %}
</div>
</table>
</body>
</html>
- 3伪窖、編寫(xiě) demo3.py
from flask import Flask,request,jsonify,render_template
app=Flask(__name__)
data=[
{'case':'test_sub01','result':"PASS"},
{'case': 'test_sub02', 'result': "FAIL"},
{'case': 'test_sub03', 'result': "PASS"},
{'case': 'test_sub04', 'result': "PASS"}
]
@app.route('/login')
def login():
return render_template('login.html',tester="倩倩",pass_NO=4,fail_NO=1,data=data)
if __name__=="__main__":
app.run()
訪問(wèn)網(wǎng)頁(yè):http://127.0.0.1:5000/login查看結(jié)果.
網(wǎng)頁(yè)的格式可以多種多樣逸寓,需要自己根據(jù)需要自行定義。
給大家介紹一個(gè)前端組件庫(kù):Bootstrap4
教程鏈接:https://www.runoob.com/bootstrap4/bootstrap4-install.html
贊我 ?? 贊我 ?? 贊我 ?? 贊我 ?? 贊我 ?? 贊我 ??