【发布时间】:2023-02-10 14:45:11
【问题描述】:
from starlette.middleware import Middleware
from starlette.middleware.base import BaseHTTPMiddleware
from starlette.routing import Mount
from fastapi import FastAPI, HTTPException
class CustomHeaderMiddleware(BaseHTTPMiddleware):
async def dispatch(self, request: Request, call_next):
customer =stripe.Customer.retrieve(request.session.get("user"))
r= stripe.Subscription.list(customer=customer.id,limit=3)
if r.data[0].status =="incomplete":
raise HTTPException(401)
# response= RedirectResponse(url='/gradio')
response = await call_next(request)
return response
io = gr.Interface(lambda x: "Hello, " + x + "!", "textbox", "textbox")
middleware = [
Middleware(CustomHeaderMiddleware)
]
routes = [
Mount('/gradio', app=io, middleware=middleware),
]
app = FastAPI(routes=routes)
文件“C:\Users\Shivam 112\AppData\Roaming\Python\Python310\site-packages\starlette\middleware\base.py”,第 69 行,coro 等待 self.app(范围,receive_or_disconnect,send_no_error)
类型错误:对象 str 不能用于“等待”表达式
【问题讨论】:
-
您使用的是gradio吗?
-
追溯不完整,您的问题没有任何调试工作。请查看help center,特别是How to ask以及提供minimal reproducible example的指南。
标签: python fastapi middleware starlette