我正在寻找一种创建简单的json服务器的方法,该服务器只会获取一些数据并与它们一起工作。没有深入的架构等。
所有在网络上发布的答案都是针对深度,困难或已弃用的方法/模块的:(
我所需要的就是:
客户:
requests.post('http://localhost:80108', json={'data':'test'})
服务器:
....
....
....
data = json.loads(rcv_data)
if data['data'] == 'test':
print('Simple test')
答案 0 :(得分:4)
JSON在这里不是重要的部分,JSON数据的序列化和反序列化是由标准库json
模块完成的。
您需要的是一个简单的服务器,它可以接受请求并调用Python代码;有几个适合这个要求的小型框架,Flask是一个不错的选择。
答案 1 :(得分:2)
因此,您基本上需要与服务器交换json?您是否想到过简单的REST API?您可以使用Flask来实现,甚至可以使用Flask-Restful +标准json
模块来实现。
答案 2 :(得分:1)
这不是一个简单的答案,但是我建议您看看如何制作django api app。这是一个很好的起点。然后使用tutorialspoint将您带到需要的地方。先前的答案提到烧瓶。 Flask与django非常相似,但是如果您打算将其构建为更大的项目,我建议在flask上使用django。
答案 3 :(得分:0)
请回答。烧瓶就是我要找的东西。
服务器:
from flask import Flask
from flask import request
import json
app = Flask(__name__)
def post_actions(data):
return {
'Action1': func1,
'Action2': func2,
'Action3': func3,
}.get(data['Action'])(data['Data'])
@app.route("/", methods=['GET', 'POST'])
def indx():
if request.method == 'POST':
if request.data:
rcv_data = json.loads(request.data.decode(encoding='utf-8'))
rsp = post_actions(rcv_data)
if rsp:
return rsp
else:
return '200'
else:
return '404'
if __name__ == "__main__":
app.run(host='localhost', port='43560')
客户:
import requests
data = {'Action': 'Action2',
'Data': ['MILK', 'BREAD', 'WATER']}
response = request.post('http://localhost:43560/', json=data)
print(response.text)
>>>'200'