squeaky-pl / japronto

Screaming-fast Python 3.5+ HTTP toolkit integrated with pipelining HTTP server based on uvloop and picohttpparser.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RuntimeError: Request.Response can only be called once per request

vadim-shadrin opened this issue · comments

from japronto import Application

def donotwork(request):
access = 1
if isAllow(access,request):
return request.Response(text='Hello world!')

def work(request):
access = 1

if access == 0:
    return request.Response(headers={'Location': '/notauth'}, code=302)
if access == 1:
    return request.Response(headers={'Location': '/denied'}, code=302)
if access == 2:
    return request.Response(text='Hello world!')

def denied(request):
return request.Response(text='denied!')

def allowed(request):
return request.Response(text='allowed!')

def notauth(request):
return request.Response(text='not auth!')

def isAllow(access,request):

if access == 0:
    return request.Response(headers={'Location': '/notauth'}, code=302)
if access == 1:
    return request.Response(headers={'Location': '/denied'}, code=302)
if access == 2:
    return True

app = Application()
app.router.add_route('/donotwork', donotwork)
app.router.add_route('/work', work)
app.router.add_route('/allowed', allowed)
app.router.add_route('/denied', denied)
app.router.add_route('/notauth', notauth)
app.router.add_route('/work', work)
app.run(debug=True)

I try to solve problem of ACL

if I invoke "donotwork" handler I get error

RuntimeError: Request.Response can only be called once per request .**