Flask模块
1.首先一个基本的demo:
from flask import Flask
app = Flask(__name__)
@app.route('/hello')
def hello_world():
return ('hello, world!\n')
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5147)
host=0.0.0.0
表示可以接收任意的连接,port=5147
表示监听的是5147端口
2.也可以通过flask获取参数:
-
当使用
GET
时:curl -X GET "http://localhost:8000/check_your_status?username=admin&password=123456"
可以使用
request.args.get()
获取指定的参数的值:from flask import request @app.route('/get_args_GET', methods=['GET']) def get_args_GET(): username = request.args.get('username') password = request.args.get('password') return ('OK\n')
当使用
request.args.items()
可以直接获取所有的参数,类型为list,如: [(‘username’, u’admin’), (‘password’, u’123456’)] -
当使用
POST
时(此时的参数是在Header
中):curl -d "user=Summer&passwd=12345678" "http://127.0.0.1:8080/check_your_status"
可以使用flask的
request.form()
方法获取Header
中的参数:from flask import request @app.route('/hello', methods=['POST']) def hello_world(): user = request.form('user') passwd = request.form('passwd') return ('username: %s\npassword: %s\n' % (user, passwd))
-
当使用
POST
时(此时的参数是在Body
中):curl -X POST -H "Content-Type:application/json" --data '{"message": "sunshine"}' http://localhost:8000/check_your_status
可以使用flask的
request.get_data()
或request.get_json()
获取,最好使用get_data()
:from flask import request @app.route('/get_data', methods=['POST']) def get_data(): data = request.get_data() ... return ('OK\n')
3.使用jsonify()
函数将消息序列化为json,并且自动将Content-Type
修改为json发送给客户端:
from flask import jsonify
@app.route('/test_jsonify')
def test_jsonify():
a = {'name': 'ysj', 'sex': 'man'}
return jsonify(a)
4.一般使用request.get_data()
获得的数据,由于是str
类型的,所以需要解析成json格式,方便处理:
from flask import jsonify
import json
@app.route('/get_data', methods=['POST'])
def get_data():
data = request.get_data()
data = json.loads(data)
# 对数据进行处理
return jsonify(data)