यहाँ Sanic . का एक सरल उदाहरण है

from sanic import Sanic
from sanic import response as res

app = Sanic(__name__)


@app.route("/")
async def test(req):
    return res.text("I\'m a teapot", status=418)


if __name__ == '__main__':
    app.run(host="0.0.0.0", port=8000)

अब, यह पोर्ट 8000 खोलेगा, जहां मैंने अनुरोध भेजा है। इसके बजाय, क्या मैं एक ही पायथन कोड में आंतरिक रूप से परीक्षण (req) को कॉल कर सकता हूं, जैसे कुछ:

from sanic import Sanic
from sanic import response as res

## generating some data
req = generate_data()

app = Sanic(__name__)


@app.route("/")
async def test(req):
    return res.text("I\'m a teapot", status=418)


if __name__ == '__main__':
    app.call(test(req))   ????????????????
    #app.run(host="0.0.0.0", port=8000)

परीक्षण के लिए, क्या मैं app.call(test(req)) जैसे कुछ कर सकता हूं, जैसे कि उत्पन्न समान 'req' डेटा बिना किसी HTTP ओवरहेड के सैनिक एपीआई को पास किया जा सकता है?

0
Kumar Govindam 13 अक्टूबर 2020, 09:10

1 उत्तर

सबसे बढ़िया उत्तर

उत्तर दस्तावेज़ों में है

इसमें दो परीक्षण क्लाइंट अंतर्निहित हैं। सिंक संस्करण एप्लिकेशन को खड़ा करता है और http अनुरोध सबमिट करता है। एसिंक संस्करण उस एएसजीआई को अंदर तक पहुंचने और हैंडलर को निष्पादित करने से बचाता है। ऐसा लगता है कि आप वही चाहते हैं जो आप चाहते हैं।

request, response = await app.asgi_client.put('/')
1
The Brewmaster 13 अक्टूबर 2020, 22:10