2012-12-26 11 views
5

क्या डिबगिंग उद्देश्यों के लिए स्ट्रिंग के रूप में फ्लास्क में अनुरोध मुद्रित करने का कोई तरीका है? मैं अनुरोध ऑब्जेक्ट के लिए अपना खुद का फॉर्मेटर लिखने के बिना बस पोस्ट अनुरोध के सभी पैरा प्रिंट करना चाहता हूं।फ्लास्क अनुरोध डीबगिंग

उत्तर

5

ठीक है आप अनुरोध वस्तु को एक निर्देश के रूप में प्रिंट कर सकते हैं और वहां जानकारी देख सकते हैं, लेकिन मैं Flask Debug Toolbar को आजमाने का सुझाव दूंगा, यह सभी अनुरोध डेटा और अधिक देखने में सहायक हो सकता है। यह टूलबार Django डीबग टूलबार का बंदरगाह है।

7

आप pprint मॉड्यूल का उपयोग कर सकते हैं।

अनुरोध ऑब्जेक्ट को प्रिंट करना कोई भी उपयोगी जानकारी नहीं दिखाएगा, इसलिए आप शायद request.environ प्रिंट करना चाहते हैं।

एक उदाहरण के रूप:

from flask import Flask, Response, request 
import pprint 

app = Flask(__name__) 

@app.route("/test") 
def test(): 
    str = pprint.pformat(request.environ, depth=5) 
    return Response(str, mimetype="text/text") 

app.run(debug=True) 

पैदावार:

{'CONTENT_LENGTH': '', 
'CONTENT_TYPE': '', 
'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 
'HTTP_ACCEPT_ENCODING': 'gzip,deflate,sdch', 
'HTTP_ACCEPT_LANGUAGE': 'en-US,en;q=0.8,es;q=0.6', 
'HTTP_CACHE_CONTROL': 'max-age=0', 
'HTTP_CONNECTION': 'keep-alive', 
'HTTP_COOKIE': 'session=eyJsYXN0X2FwcGlkIjoiMiI', 
'HTTP_HOST': '127.0.0.1:5000', 
'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.94 Safari/537.36', 
'PATH_INFO': '/test', 
'QUERY_STRING': '', 
'REMOTE_ADDR': '127.0.0.1', 
'REMOTE_PORT': 36547, 
'REQUEST_METHOD': 'GET', 
'SCRIPT_NAME': '', 
'SERVER_NAME': '127.0.0.1', 
'SERVER_PORT': '5000', 
'SERVER_PROTOCOL': 'HTTP/1.1', 
'SERVER_SOFTWARE': 'Werkzeug/0.9.4', 
'werkzeug.request': <Request 'http://127.0.0.1:5000/test' [GET]>, 
'werkzeug.server.shutdown': <function shutdown_server at 0x10cd1b8>, 
'wsgi.errors': <open file '<stderr>', mode 'w' at 0x7f5211b911e0>, 
'wsgi.input': <socket._fileobject object at 0x1083f50>, 
'wsgi.multiprocess': False, 
'wsgi.multithread': False, 
'wsgi.run_once': False, 
'wsgi.url_scheme': 'http', 
'wsgi.version': (1, 0)}