————哈喽,大倩倩又来啦 🙇♀️🙇♀️🙇♀️
——-——求赏求关注_微信公众号:倩倩小幸Hu
日常唠叨
在我的理解看来,Flask 就是结合 Python 和 HTML 编写 web 页面。
1)Python 用来编写 URL、返回结果;
2)HTML 编写页面参数;
3)通过网页端访问 WEB 页面;
下面就大概讲讲 Flask 的使用,我觉得我就掌握了点皮毛,欢迎各位补充分享。
1、什么是 Flask
Flask 是一个轻量级的可定制框架,使用 Python 语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。
Flask 框架的主要特征是核心构成比较简单,但具有很强的扩展性和兼容性,程序员可以使用 Python 语言快速实现一个网站或 Web 服务。
2、安装 Flask
pip install flask
3、实例 1
- 打开 Pycharm 编辑器,新建一个 py 文件。如:demo.py
from flask import Flask
#当前模块实例化一个Flask对象
app=Flask(__name__)
#挂载接口地址
@app.route('/add')
#写个函数
def add():
a=1
b=2
return a+b
if __name__=="__main__": #如果是从本模块运行的就运行下面的
app.run()
-
运行文件,出现下述的结果说明运行成功
访问:http://127.0.0.1:5000/add,就可以看到返回结果了~~
这里需要注意的地方是:return 返回的是 str 格式,否则会报错!!
4、实例 2
上述是一个比较简单的 Flask 的写法,下面给大家讲讲如何利用 Flask 发送 POST/Get 请求.
- 打开 Pycharm 编辑器,新建一个 py 文件。如:demo1.py
from flask import Flask,request,jsonfy
#当前模块实例化一个Flask对象
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__": #如果是从本模块运行的就运行下面的
app.run()
如上述写法,jsonfy 是 Flask 下让其返回为 json 格式;此时我们可以通过 PostMan 工具进行访问~~
5、实例 3
拓展:
当我们写一个接口时,针对不同的输入结果会有不同的返回值,那 Flask 框架下怎么具体操作呢?来来来~~
比如上诉写的减法可能会出现的情况:
1.a=39,b=12 27
2.a=10 ,b 参数缺失
3.a='abc',b=3 参数必须为 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":"参数缺失","result":None})
if not isinstance(a,int) or not isinstance(b,int):
return jsonify({"code": 1, "msg": "参数必须为Int类型", "result": None})
final = a-b
return jsonify({"code":2,"msg":"成功","result":str(final)})
if __name__=="__main__": #如果是从本模块运行的就运行下面的
app.run()
写完后继续 POSTMAN 调用查看是否成功:
6、实例 4
下面给大家讲讲 Flask 编写 HTML 网页。
1、新建文件夹:templates[固定写法]
2、新建 login.html[放在templates中]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!-- 新 Bootstrap4 核心 CSS 文件 -->
<link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css">
<title>Title</title>
</head>
<body>
<h1>接口测试报告<h1>
<h2>执行人:{{tester}}<h2> #2个括号表示变量
<p>成功:{{pass_NO}}</p>
<p>失败:{{fail_NO}}</p>
<table class="table">
<div class="container">
<tr><td>用例名称</td><td>执行结果</td></tr>
{% for item in data %}
<tr><td>{{item['case']}}</td><td>{{item['result']}}</td></tr>
{% endfor %}
</div>
</table>
</body>
</html>
- 3、编写 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()
访问网页:http://127.0.0.1:5000/login查看结果.
网页的格式可以多种多样,需要自己根据需要自行定义。
给大家介绍一个前端组件库:Bootstrap4
教程链接:https://www.runoob.com/bootstrap4/bootstrap4-install.html
赞我 🤞 赞我 🤞 赞我 🤞 赞我 🤞 赞我 🤞 赞我 🤞