我們常常需要在服務器上開啓一個服務,供客戶端調用或是傳遞數據,現將數據交互的兩種方式(get、post)總結如下:
1.使用get方式獲取數據:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from flask import Flask
from flask import request
app = Flask(__name__)
@app.route('/analyse', methods=['get'])
def analyse():
data = request.args.get("text")
print(data)
return data
if __name__ == "__main__":
app.run()
首先導入flask包中的request模塊,通常使用request.args.get("key")來獲取傳遞的數據中名稱爲key的內容。
客戶端可以使用http://127.0.0.1:5000/analyse?text="2020年3月"來調用服務器的接口,輸出內容如下:
"2020年12月"
2.使用post方式傳遞數據:
服務器端:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from flask import Flask
from flask import request
app = Flask(__name__)
@app.route('/analyse', methods=['post'])
def analyse():
data = request.form
text = data.get("text")
print(text)
return text
if __name__ == "__main__":
app.run()
客戶端:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import requests
post_data = {
"text": "abc"
}
res = requests.post(url="http://127.0.0.1:5000/analyse", data=post_data)
print(res.text)
客戶端使用requests.post封裝了url,data等數據後傳遞給服務器。
服務器使用request.form接收數據,並通過get("key")方法獲取關鍵詞爲key的內容。
輸出結果爲:
abc
另外,如果客戶端傳遞的數據是個列表形式,單純使用request.form.get("key")的方式會出現數據缺失的現象,請讀者閱讀我的另一篇博文:https://blog.csdn.net/kevinjin2011/article/details/104909753