def post(self, request: Request) -> Response: return Response( status=HTTP_STATUS.FOUND, headers={"Location": "/user"}, session={"name": request.POST["user_name"][0]}, )
def get(request: Request) -> Response: """ /headers のパスにきたリクエストに対して、headerの内容をレスポンスとして返す :param request: :return: """ body_str = "" for key, value in request.headers.items(): body_str += f"{key}: {value}<br>" return Response(status=HTTP_STATUS.OK, body=body_str.encode())
def _start_response_by_response(self, response: Response) -> None: status = response.status.value response.headers["Content-Type"] = response.content_type headers = [(key, value) for key, value in response.headers.items()] for key, value in response.cookies.items(): headers.append(("Set-Cookie", f"{key}={value}")) self.start_response(status, headers)
def get(self, request: Request) -> Response: """ リクエストメソッドがGETだった時の処理 """ body_str = "" for key, value in request.headers.items(): body_str += f"{key}: {value}<br>" return Response(status=HTTP_STATUS.OK, body=body_str.encode())
def get(self, request: Request) -> Response: """ リクエストメソッドがGETだった時の処理 """ body = f"""\ <html> <body> now is {datetime.now()} </body> </html> """.encode() return Response(status=HTTP_STATUS.OK, body=body)
def get(request: Request) -> Response: """ :return: Cookieを設定して返す """ body = "cookies" body += str(request.cookies) return Response(status=HTTP_STATUS.OK, body=body.encode(), cookies={ "test_cookie3": "hoge3", "test_cookie4": "hoge4" })
def get_response(self, request: Request) -> Response: """ /parameters のパスにきたリクエストに対して、適切なレスポンスを生成して返す :param request: :return: """ if request.method == "GET": return self.get(request) elif request.method == "POST": return self.post(request) else: return Response(status=HTTP_STATUS.METHOD_NOT_ALLOWED)
def post(self, request: Request) -> Response: """ リクエストメソッドがPOSTだった時の処理 """ body = f"""\ <html> <body> {str(request.POST)} </body> </html> """.encode() return Response(status=HTTP_STATUS.OK, body=body)
def post(self, request: Request) -> Response: # Cookieからsession_idを取得 if "session_id" not in request.cookies: session_id = str(uuid4()) else: session_id = request.cookies["session_id"] SESSIONS[session_id] = {"name": request.POST["user_name"][0]} return Response( status=HTTP_STATUS.FOUND, headers={"Location": "/user"}, cookies={"session_id": session_id}, )
def get(self, request: Request) -> Response: body = dedent(f""" <html> <body> <h2> Current Cookies: {request.cookies} </h2> </body> </html> """).encode() return Response(status=HTTP_STATUS.OK, body=body, cookies={ "foo": "bar", "foo2": "bar2" })
def get(self, request: Request) -> Response: if request.session: name = request.session.get("name") else: name = "" body = f"""\ <html> <body> <h1>ようこそ [ {name or "名無し"} ] さん! <form method="post"> 名前変更: <input type="text" name="user_name"></input> <input type="submit" value="送信"> </form> </body> </html> """ return Response(body=body.encode(), status=HTTP_STATUS.OK)
def get(request: Request) -> Response: current_time_str = f"<html><body><h1>now is {datetime.now()}</h1></body></html>" return Response(status=HTTP_STATUS.OK, body=current_time_str.encode())
def post(self, request: Request) -> Response: return Response(status=HTTP_STATUS.METHOD_NOT_ALLOWED)
def get(request: Request) -> Response: """ リクエストメソッドがGETだった時の処理 """ return Response(status=HTTP_STATUS.OK, body=str(request.GET).encode())
def get(request: Request) -> Response: return Response(status=HTTP_STATUS.METHOD_NOT_ALLOWED)