如果您已经熟悉 django,并且您的微控制器支持发送 HTTP (REST) 请求并且可以解析 Json ,您只需添加一个常规的基于 django 的返回 json 的视图:
# views.py
from django.http import JsonResponse
def my_view(request):
# handle input here, probably using request.GET / request.POST
return JsonResponse({'status': 'OK'})
Run Code Online (Sandbox Code Playgroud)
但是,如果您的微控制器非常简单并且无法执行 HTTP/json,则可以使用python 标准库中的简单SocketServer代替:
import SocketServer
class MyTCPHandler(SocketServer.BaseRequestHandler):
def handle(self):
self.data = self.request.recv(1024).strip()
print "{} wrote:".format(self.client_address[0])
print self.data
# just send back the same data, but upper-cased
self.request.sendall(self.data.upper())
if __name__ == "__main__":
HOST, PORT = "localhost", 9999
server = SocketServer.TCPServer((HOST, PORT), MyTCPHandler)
server.serve_forever()
Run Code Online (Sandbox Code Playgroud)
请记住,您仍然可以导入 django 的库并在 SocketServer 中使用 django 的 ORM (DB)。
另一个流行的选择是使用Tornado 的 tcpserver:
from tornado.ioloop import IOLoop
from tornado.tcpserver import TCPServer
class MyTCPServer(TCPServer):
def handle_stream(self, stream, address):
def got_data(data):
print "Input: {}".format(repr(data))
stream.write("OK", stream.close)
stream.read_until("\n", got_data)
if __name__ == '__main__':
server = MyTCPServer()
server.listen(9876)
IOLoop.instance().start()
Run Code Online (Sandbox Code Playgroud)