问题标签 [starlette]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用 websockets 优雅关闭 uvicorn starlette 应用程序
给定这个带有开放 websocket 连接的示例 Starlette 应用程序,您如何关闭 Starlette 应用程序?我正在运行 uvicorn。每当我按下Ctrl+C
输出时,Waiting for background tasks to complete.
它就会永远挂起。
我尝试在关闭事件上切换一个布尔变量,但该变量永远不会更新。它总是False
。
例如。
python-3.x - 如何连接 hypercorn 和 starlette 网络框架
我能够使用 gunicorn 和 uvloop 启动并运行它,但很难让它与 hypercorn 一起使用。另一个问题是指定 ASGI 框架的工作人员数量。
python - “oauth.google.authorize_redirect()”返回错误 500:“httpx.exceptions.ConnectTimeout”
我实际上正在使用带有 authlib 的 starlette 框架进行 Google OAuth 身份验证的平台上工作。
从今天开始,我500 Internal Server Error
在调用时遇到oauth.google.authorize_redirect(request, redirect_uri)
错误httpx.exceptions.ConnectTimeout
。
我完全迷失了这种新的行为。我可以使用以下demo-oauth-client
提供的存储库重现它authlib
:
https ://github.com/authlib/demo-oauth-client/tree/master/starlette-google-login
app.py 是:
.env
文件是:
对这种新行为有任何想法吗?我完全迷失了。谢谢 !!
python - RuntimeError:无法对 TCPTransport 执行操作,处理程序已关闭
我正在尝试使用工具在我的本地机器上进行 HTTP 基准测试,该工具适用于我在+autocannon
上构建的全新的项目设置。FastAPI
uvicorn
但是在某些时候或随机(我不知道发生了什么)我遇到了一个 ASGI 异常。
要启动我的应用程序,我会:
我试图增加工人的数量。我仍然得到这些例外。
为了进行基准测试,我这样做:
PS:我的数据库(PostgreSQL
)在Docker
容器上工作。而且我还进行异步数据库交互(当然)。也许添加此信息会有所帮助。
python - Python 日志记录 - 如何禁用包的日志记录?
我被这个问题逼疯了。我只想使用我的 basicConfig 进行日志记录,但模块(uvicorn)也正在记录到文件中。
例子:
我不希望出现第二条消息,因为它是重复的...如何禁用它?
更新:使用的代码...
设置 access-log = False 后记录。我打了几次API:
当 access_log = True 时记录:
python-3.x - python starlette中的自定义异常
我正在尝试使用 python 中的 starlette 框架引发自定义异常。我有检查某些条件的 API 调用取决于结果,它应该引发异常。我有两个文件 app.py 和 error.py
当条件为真时,我想引发异常,但它不返回 jsonrespnse,而是返回控制台上的堆栈跟踪。如果这里有什么问题,请告诉我
fastapi - 如何在 Starlette/FastAPI 中进行客户端证书验证 (mTLS)
我正在考虑使用 FastAPI 框架来实现相当简单的 API,但它需要支持 mTLS。AFAIK FastAPI 基于 Starlette。是否可以在 Starlette 中检查客户证书?
static-files - 使用 FastAPI/Starlette 提供静态文件时的相对 URL 路径
我有一个简单的 FastAPI 应用程序,它像这样提供test.html
文件app/main.py
:
目录结构是这样的:
我可以更改此操作以使其与修改后的目录结构一起使用,app/
并且static/
是兄弟姐妹吗?
我已经尝试过return FileResponse('../static/test.html')
,但到目前为止还没有奏效;产生的错误是“RuntimeError:路径 ../static/test.html 中的文件不存在。”
python-3.x - 有没有办法使用 Python 后端服务器检索客户端 IP 地址
有问题的设置如下所示:
我的 web 应用程序使用和fastapi
部署工作人员类,位于具有 IP 地址的同一主机上的代理后面(以及其他远程设备,如 VPN 集中器等)gunicorn
uvicorn
nginx
172.31.x.x
nginx
配置如下:
gunicorn
配置如下:
在fastapi
使用starlette.requests.Request
对象(名为request
)时,request.client.host
打印托管 Web 应用程序的服务器的接口 IP 地址(即172.31.x.x
)
request.headers["x-real-ip"], request.headers["x-forwarded-for"]
两者都在我的代理之前打印设备的 IP 地址,这是我公司众所周知的防火墙设备。
我想问的是:
- 是否可以打印整个
X-Forwarded-For
HTTP 标头以查看中间代理服务? - 如何检索我的最终用户的真实客户端 IP 地址(基本上覆盖众所周知的白名单 IP 地址)?
python - FastAPI (starlette) 获取客户端真实IP
我在 FastAPI 上有一个 API,当他请求我的页面时,我需要获取客户端的真实 IP 地址。
我很喜欢使用 starlette Request。但它返回我的服务器 IP,而不是客户端远程 IP。
我的代码:
我做错了什么?如何获取真实 IP(如 Flask request.remote_addr)?