先简单说下安装:
在cmd中输入:pip install flask
安装成功后就可以导入使用。
先写个简单的Flask程序:
import flask #导入flask类
server = flask.Flask(__name__) #创建Flask类的实例,
@server.route('/api/reg/<username>', methods=['get', 'post']) #定义URL,及访问接口的方式,URL中带有参数username
def reg(username):
return 'user is %s' % username #返回要显示在用户浏览器中的信息
server.run(debug=True) #设置每次修改代码后无需手动重启,服务器会自动重新加载,并在错误时提供一个调试器
最后一行设置debug参数也可以使用server.debug = True的方式设置。
上面的服务启动后,在浏览器里输入:http://127.0.0.1:5000/api/reg/luotuofeile,运行结果:
1,上述代码里给URL添加了变量,<variable_name>将会作为命名参数传递到函数,也可以使用<converter:variable_name>指定参数类型,常用的有:
int: 接受整数
float: 接受浮点数
path: 路径,接受斜线。
@server.route('/api/<path:path1>')
def show_path(path1):
return 'path %s' % path1
2,上述接口请求方式为 methods=['get', 'post'],既可以使用get方式请求,也可以使用post方式请求,下面来说下接口包含参数的情况。编写一个登录接口:
@server.route('/api/login', methods=['get', 'post']) #定义URL,及访问接口的方式
def login():
users = {'user1': 123456, 'user2': 111111, 'user3': 098765} #定义所有用户
name = flask.request.values.get('username') #获取用户传递的参数usernam,赋值给变量name
password = flask.request.values.get('password') #获取用户传递的参数password,赋值给变量password
if name and password:
if name not in users:
d1 = {"status": 10010, "msg": "该用户不存在!"}
return json.dumps(d1, ensure_ascii=False, indent=4) #返回显示的内容
elif password != users[name]:
d1 = {"status": 10020, "msg": "密码错误!"}
return json.dumps(d1, ensure_ascii=False, indent=4) #返回显示的内容
else:
d1 = {"status": 200, "msg": "登录成功!"}
return json.dumps(d1, ensure_ascii=False, indent=4) #返回显示的内容
else:
d1 = {"status": 10030, "msg": "参数不能为空!"}
return json.dumps(d1, ensure_ascii=False, indent=4) #返回显示的内容
上述接口可以使用get方式请求,在URL里拼接参数即:http://127.0.0.1:5000/api/login?username=user1&password=123456
也可以使用post方式请求,使用postman请求结果:
3,上面我们访问接口本机访问本机IP,那么如何让同一局域网的电脑也能访问该接口呢,答案很简单,在调用run方法时设置即可。
server.run('0.0.0.0', port=8000, debug=True)
'0.0.0.0'监听了所以IP后,同时设置了端口号为8000。