मामले में आप वास्तव में किसी भी बाहरी चौखटे/पुस्तकालयों का उपयोग नहीं करना चाहते हैं, तो आप एक साधारण वर्ग जो BaseHTTPRequestHandler
फैली बना सकते हैं, कुछ इस तरह:
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
import json
class S(BaseHTTPRequestHandler):
def _set_headers(self):
self.send_response(200)
self.send_header('Content-type', 'application/json')
self.end_headers()
def do_GET(self):
self._set_headers()
self.data_string = self.rfile.read(int(self.headers['Content-Length']))
self.send_response(200)
self.end_headers()
data = json.loads(self.data_string)
# your processing
outJson = {"success": True}
self.wfile.write(json.dumps(outJson))
def do_HEAD(self):
self._set_headers()
self.wfile.write("HEAD")
def do_POST(self):
self._set_headers()
self.wfile.write("POST")
और फिर अपनी पसंद (80 डिफ़ॉल्ट रूप से) के बंदरगाह पर स्थानीय रूप से सर्वर प्रारंभ बस इस तरह:
def run(port=80):
httpd = HTTPServer(('', port), S)
print 'Starting httpd...'
httpd.serve_forever()
if __name__ == "__main__":
from sys import argv
if len(argv) == 2:
run(port=int(argv[1]))
else:
run()
और अगर आप आसानी से मार्गों के बहुत सारे का प्रबंधन करने की जरूरत है, आप इसे आसान और आप के लिए सरल बनाने के लिए klein
या Flask
microframeworks (या यहां तक bottle
) का उपयोग कर सकते हैं, klein
प्रयोग करने के लिए एक सरल कम से कम उपयोग का उदाहरण कुछ इस तरह दिखेगा:
import json
from klein import Klein
class ItemStore(object):
app = Klein()
def __init__(self):
self._items = {}
@app.route('/')
def items(self, request):
request.setHeader('Content-Type', 'application/json')
return json.dumps(self._items)
@app.route('/<string:name>', methods=['PUT'])
def save_item(self, request, name):
request.setHeader('Content-Type', 'application/json')
body = json.loads(request.content.read())
self._items[name] = body
return json.dumps({'success': True})
@app.route('/<string:name>', methods=['GET'])
def get_item(self, request, name):
request.setHeader('Content-Type', 'application/json')
return json.dumps(self._items.get(name))
और उसके बाद इस तरह सर्वर चलाते:
if __name__ == '__main__':
store = ItemStore()
store.app.run('localhost', 8080)
इसके अलावा, आप सिर्फ स्थानीय स्तर पर दूर से और नहीं नकली API का उपयोग करने के लिए, आप ngrok तरह सुरंग उपकरणों का उपयोग कर सकते हैं करना चाहते हैं। यह बहुत आसान और उपयोग करने में आसान है।
@nice आप JSON सर्वर पर भी एक नज़र डाल सकते हैं: https://github.com/typicode/json-server जो मैकिंग एपीआई के लिए बहुत आसान है। कोड की एक पंक्ति के बिना GET, POST, PUT सहित HTTP क्रियाओं का एक पूरा सेट प्रदान करता है! –
@ एनिको फ्लास्क पर भी देखें: http://flask.pocoo.org/। इसका अजगर केवल उपयोग करने के लिए आसान और शुरू हो गया! –
सर्वर क्यों? क्यों न सिर्फ अनुरोध पुस्तकालय का नकल करें और नेटवर्क कनेक्टिविटी से पूरी तरह से बचें? –