如何创建一个真正简单的json服务器?

时间:2019-05-15 07:40:39

标签: python json python-3.x

我正在寻找一种创建简单的json服务器的方法,该服务器只会获取一些数据并与它们一起工作。没有深入的架构等。

所有在网络上发布的答案都是针对深度,困难或已弃用的方法/模块的:(

我所需要的就是:

客户:

requests.post('http://localhost:80108', json={'data':'test'})

服务器:

....
....
....
data = json.loads(rcv_data)
if data['data'] == 'test':
    print('Simple test')

4 个答案:

答案 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'