Flask测试小工具平台
1.首先安装flask pip install flask,或者在setting里边去搜flask去安装
2.写一个简单的接口,输出hello
接口是一个函数,接口要绑定一个接口地址,以确定那个接口去走这个函数,绑定到路由也就是接口地址
from flask import Flask
app = Flask('tools')
@app.route('/')
def home():
return 'hello'
if __name__=='__main__':
app.run()
运行结果就是在网页上输出一个hello
3.接口也可以返回网页
from flask import Flask
app = Flask('tools')
@app.route('/')
def home():
return """<html> ---return里可以写一个网页,返回
<head><title>第一个网页啊</title></head>
<body>
<h1>你好</h1>
<h2>Lily</h2>
<h3>哈哈</h3>
</body>
</html>
"""
if __name__=='__main__':
app.run()
4.接口也可以返回一个json格式,需要引入jsonify,通过jsonify来传一个josn对
from flask import Flask,jsonify
app = Flask('tools')
@app.route('/')
def home():
return jsonify({'name':'Kiven','age':16})
if __name__=='__main__':
app.run()
返回结果是json格式对
--------------------------------------------------------------------------------------------------------
但是这样在一个文件里写很麻烦,可以单独写一个html模板,返回一个html文件
在根目录下新建一个模板文件夹templates,存放html模板
写出来一个静态模板home.html,要传给接口,怎么传呢。需要导入render_template,导入以后可以通过
render_template把网页传给接口
from flask import Flask,jsonify,render_template
app = Flask('tools')
@app.route('/')
def home():
return render_template('./home.html') ---把网页传给接口
if __name__=='__main__':
app.run()
也可以在网页设置一个变量,通过render_template渲染网页的时候,传值给设置的变量
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>小工具主页</title>
</head>
<body>
<div id="content">
<h2>你好,{{user}}</h2> --user就是设置的变量,通过render_template传值给这个变量
<h3>测试小工具</h3>
<url>
<li>Xmind转excel</li>
<li>HAR转接口代码</li>
<li>MD5加密</li>
</url>
<h3>运维小工具</h3>
<url>
<li>Xmind转excel</li>
<li>HAR转接口代码</li>
<li>MD5加密</li>
</url>
</div>
</body>
</html>
from flask import Flask,jsonify,render_template
app = Flask('tools')
@app.route('/')
def home():
return render_template('./home.html',user='Keivn') ----这里的user赋值,传给网页里设置的变量
if __name__=='__main__':
app.run()
-------------------------======================----------------------------------------------==============================----------------------------------
一些动态数据,可以从后端传到前端,前端埋一个变量,进行遍历,加for循环
from flask import Flask,jsonify,render_template
app = Flask('tools')
@app.route('/')
def home():
#date就是动态数据,可以随时改变
date =[
{'name':'Xmind转excel','url':''},
{'name':'HAR转接口代码','url':''},
{'name':'md5加密','url':''}
]
return render_template('./home.html',user='Keivn',tools=date) ----tools就是html里边的变量名称,把date传给tools
if __name__=='__main__':
app.run()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>小工具主页</title>
</head>
<body>
<div id="content">
<h2>你好,{{user}}</h2>
<h3>测试小工具</h3>
<url>
{% for tool in tools%} --------tools是变量,for循环,遍历整个tools
<li>{{tool.name}}</li> --------取每个变量的name
{% endfor %}
</url>
<h3>运维小工具</h3>
<url>
<li>Xmind转excel</li>
<li>HAR转接口代码</li>
<li>MD5加密</li>
</url>
</div>
</body>
</html>
---------------------------------------------------------------------------------------------
还可以在小工具里加链接,可以点击跳转,单独一个小工具新建一个页面xmind2excel.html
跳转到小工具页面,需要加链接,需要新增一个接口,即一个新的函数
from flask import Flask,jsonify,render_template
app = Flask('tools')
@app.route('/')
def home():
date =[
{'name':'Xmind转excel','url':'/xmind2excel'},
{'name':'HAR转接口代码','url':''},
{'name':'md5加密','url':''}
]
return render_template('./home.html',user='Keivn',tools=date)
@app.route('/xmind2excel') #括号里的是接口地址 --新加的接口
def xmind2excel():
return render_template('./xmind2excel.html')
新写的页面,点击主页上的文字的链接,跳转到这个页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>XMind转Excel</title>
</head>
<body>
<h2>XMind转Excel</h2>
</body>
</html>
在新页面加一些功能
加一个做加法的功能
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>XMind转Excel</title>
</head>
<body>
<h2>XMind转Excel</h2>
<form> #表单两个关键点:1 传给哪个接口 2 每个输入框要提供一个变量名
<div><span>变量a </span><input type="text"></div>
<div><span>变量b </span><input type="text"></div>
<button type="submit">确定</button>
</form>
</body>
</html>
在主页写一个接口 新引入一个request
from flask import Flask,jsonify,render_template,request
app = Flask('tools')
@app.route('/')
def home():
date =[
{'name':'Xmind转excel','url':'/xmind2excel'},
{'name':'HAR转接口代码','url':''},
{'name':'md5加密','url':''}
]
return render_template('./home.html',user='Keivn',tools=date)
@app.route('/xmind2excel') #括号里的是接口地址
def xmind2excel():
return render_template('./xmind2excel.html')
@app.route('/add',methods=['POST']) --新写的加法接口,加了限制那种请求方式,可以是一个可以是多个
def add():
a = request.form.get('a')
b = request.form.get('b')
c = int(a) + int(b) --html里拿到的变量值都是字符串,需要转换成整形的才能进行加法计算
return str(c) --做完加法计算c是整形的,需要转换成字符串形式才能传
if __name__=='__main__':
app.run()
新写的页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>XMind转Excel</title>
</head>
<body>
<h2>XMind转Excel</h2>
#表单两个关键点:1 传给哪个接口 2 每个输入框要提供一个变量名
<form action="/add" method="post"> #通过post方式传给add这个接口
<div><span>变量a </span><input name="a" type="text"></div> #变量名是a 输入的值以变量a传给接口
<div><span>变量b </span><input name="b" type="text"></div> #变量名是b
<button type="submit">确定</button>
</form>
</body>
</html>