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

Python 如何创建一个真正简单的json服务器?,python,json,python-3.x,Python,Json,Python 3.x,我正在寻找一种方法来创建一个简单的json服务器,它只能获取一些数据并使用它们。没有深入的研究,等等 所有在web上发布的答案都是深入、困难或使用不推荐的方法/模块: 我需要的是: 客户: requests.post('http://localhost:80108', json={'data':'test'}) import requests data = {'Action': 'Action2', 'Data': ['MILK', 'BREAD', 'WATER']} r

我正在寻找一种方法来创建一个简单的json服务器,它只能获取一些数据并使用它们。没有深入的研究,等等

所有在web上发布的答案都是深入、困难或使用不推荐的方法/模块:

我需要的是:

客户:

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

data = {'Action': 'Action2',
        'Data': ['MILK', 'BREAD', 'WATER']}

response = request.post('http://localhost:43560/', json=data)
print(response.text)
>>>'200'
服务器:

....
....
....
data = json.loads(rcv_data)
if data['data'] == 'test':
    print('Simple test')
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')

JSON不是这里的重要部分,序列化和反序列化JSON数据是由标准库JSON模块完成的


您需要的是一个简单的服务器,它接受请求并调用Python代码;有几个小框架可以满足这个要求,这是一个很好的选择。

这不是一个简单的答案,但我建议看看如何制作一个新的框架。这是一个很好的起点。然后用它把你带到你想去的地方。先前的回答提到了烧瓶。Flask与django非常相似,但如果您打算将其构建为一个更大的项目,我建议使用django而不是Flask。

那么您基本上需要与服务器交换JSON?您想过一个简单的RESTAPI吗?您可以使用+标准json模块实现一个或更简单。

Ty获取答案。这就是我要找的

服务器:

....
....
....
data = json.loads(rcv_data)
if data['data'] == 'test':
    print('Simple test')
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')
客户:

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

data = {'Action': 'Action2',
        'Data': ['MILK', 'BREAD', 'WATER']}

response = request.post('http://localhost:43560/', json=data)
print(response.text)
>>>'200'