标签: uvicorn

使用 Uvicorn 修复“无法将字典更新序列元素 #0 转换为序列”时出现问题

我有以下使用 FastApi 和 Uvicorn 的代码用于 ASGI 服务器实现。它应该通过发布请求获取上传的图像,并在返回响应之前使用模型对其进行分类。该错误似乎与 Uvicorn 有关,但我不知所措。任何帮助将非常感激。以前有人见过这样的错误吗?这是代码:

import uvicorn
from fastapi import FastAPI, File, UploadFile
import sys

from PIL import Image
from io import BytesIO
import numpy as np

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
import matplotlib.pyplot as plt
from tensorflow.keras.preprocessing import image
import PIL
import sys 
from cv2 import cv2
from scipy import misc
import os

import shutil
from pathlib import Path
from tempfile import NamedTemporaryFile
from typing import Callable

app …
Run Code Online (Sandbox Code Playgroud)

python server tensorflow fastapi uvicorn

3
推荐指数
1
解决办法
6481
查看次数

Jinja2 模板中 url_for 创建的 FastAPI 链接使用 HTTP 而不是 HTTPS

我将 Flask 中由 waitress 提供的应用程序迁移到由 uvicorn 提供的 FastAPI,但我无法强制链接(由 index.html 模板内的 url_for 生成)使用 HTTPS 而不是 HTTP。

我和女服务员一起使用:

from waitress import serve
import flask_app

PORT=5000
HOST_IP_ADDRESS='0.0.0.0'

serve(flask_app.app, host=HOST_IP_ADDRESS, port=PORT, url_scheme="https")
Run Code Online (Sandbox Code Playgroud)

对于 uvicorn,我尝试使用 proxy_headers,但这不起作用。我在index.html中使用了解决方法

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
Run Code Online (Sandbox Code Playgroud)

它正确地从静态文件加载了 style.css,但到另一个端点的链接仍然使用 HTTP。

有没有一种简单的方法可以强制 url_for 创建的所有链接都使用 HTTPS?

https jinja2 fastapi uvicorn

3
推荐指数
1
解决办法
5003
查看次数

Heroku 部署在 uvicorn 上运行的 Fastapi (Python):Web 进程无法绑定到 $PORT

我们有一个 python 3.9 fastapi 服务器,我们试图在 heroku 上的 uvicorn 上运行它。\n当我们在实例上启动它时,它运行良好,heroku run bash但当它在 dyno 流形上正常启动时,端口不会绑定。

\n
heroku/web.1 Starting process with command `uvicorn app.main:app --workers 4 --port 42374`\napp/web.1 INFO:     Uvicorn running on http://127.0.0.1:42374 (Press CTRL+C to quit)\napp/web.1 INFO:     Started parent process [4]\napp/web.1 INFO:     Started server process [13]\napp/web.1 INFO:     Waiting for application startup.\napp/web.1 INFO:     Started server process [10]\napp/web.1 INFO:     Waiting for application startup.\napp/web.1 INFO:     Started server process [12]\napp/web.1 INFO:     Waiting for application startup.\napp/web.1 INFO:     Started server process [11]\napp/web.1 INFO:     Waiting for application …
Run Code Online (Sandbox Code Playgroud)

python heroku fastapi uvicorn

3
推荐指数
1
解决办法
1580
查看次数

使用 Fast API 收到无效的 HTTP 请求

我有一个 React 前端向运行 FastAPI 的 Discord.py 机器人发出请求。在我的测试环境中一切都很好,但是当我部署到远程主机时 uvicorn 抱怨

    WARNING:  Invalid HTTP request received.
Traceback (most recent call last):
  File "/home/container/uvicorn/protocols/http/h11_impl.py", line 136, in handle_events
    event = self.conn.next_event()
  File "/home/container/h11/_connection.py", line 443, in next_event
    exc._reraise_as_remote_protocol_error()
  File "/home/container/h11/_util.py", line 76, in _reraise_as_remote_protocol_error
    raise self
  File "/home/container/h11/_connection.py", line 425, in next_event
    event = self._extract_next_receive_event()
  File "/home/container/h11/_connection.py", line 367, in _extract_next_receive_event
    event = self._reader(self._receive_buffer)
  File "/home/container/h11/_readers.py", line 68, in maybe_read_from_IDLE_client
    raise LocalProtocolError("illegal request line")
h11._util.RemoteProtocolError: illegal request line
2022-01-15 22:59:11,310 - Invalid HTTP …
Run Code Online (Sandbox Code Playgroud)

reactjs fastapi uvicorn

3
推荐指数
1
解决办法
2万
查看次数

无法在浏览器上运行 uvicorn.run | ERR_CONNECTION_REFUSED

我对 Python 很陌生。

我正在使用fastapi和制作一个简单的网络服务器uvicorn

当我构建 Docker 并运行它时,我得到以下内容:

INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://127.0.0.1:5000 (Press CTRL+C to quit)
Run Code Online (Sandbox Code Playgroud)

我的代码是:

# Setup FastAPI server
import uvicorn
from fastapi import FastAPI
from fastapi_utils.tasks import repeat_every
from fastapi.middleware.cors import CORSMiddleware
from dotenv import load_dotenv
import os
from pymongo import MongoClient
import logging

logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)

load_dotenv('env')

# Database
CONNECTION_URL = os.environ['mongoConnectionURL']
DATABASE_NAME = os.environ['mongoDatabaseName']
NEWS_COLLECTION = …
Run Code Online (Sandbox Code Playgroud)

python fastapi uvicorn

3
推荐指数
1
解决办法
4302
查看次数

url_for 在 FastAPI 中使用 HTTP 而不是 HTTPS

我有一个 html 文件,我配置了链接的 URL,如下所示。

app.mount("/static", StaticFiles(directory="static"), name="static")

{{ url_for('static', path='css/style.css') }}
Run Code Online (Sandbox Code Playgroud)

我已经使用 nginx 和 haproxy 为应用程序创建了域。

加载 html 页面时,不会加载 css 和 js 样式,因为它使用的是 http 而不是 https。

Flask url_for 在 docker 运行时生成 http 而不是 https

Jinja2 模板中 url_for 创建的 FastAPI 链接使用 HTTP 而不是 HTTPS

我使用了一些关于类似问题的链接,但没有帮助,因为它是针对 html 文件的。

当我硬编码时它起作用了。我怎样才能使这个静态。我正在使用 uvicorn fastapi。

python https jinja2 fastapi uvicorn

3
推荐指数
1
解决办法
3362
查看次数

从终端调用时 uvicorn 不工作

我尝试通过 pip3 在系统上安装 uvicorn ,但我无法从命令行运行它。有关如何解决此问题的任何指示?

Requirement already satisfied: uvicorn in /home/vhawk19/.local/lib/python3.7/site-packages (0.10.8)
Requirement already satisfied: uvloop>=0.14.0; sys_platform != "win32" and sys_platform != "cygwin" and platform_py
thon_implementation != "pypy" in /home/vhawk19/.local/lib/python3.7/site-packages (from uvicorn) (0.14.0)
Requirement already satisfied: websockets==8.* in /home/vhawk19/.local/lib/python3.7/site-packages (from uvicorn)
(8.1)
Requirement already satisfied: click==7.* in /home/vhawk19/.local/lib/python3.7/site-packages (from uvicorn) (7.0
)
Requirement already satisfied: h11==0.8.* in /home/vhawk19/.local/lib/python3.7/site-packages (from uvicorn) (0.8
.1)
Requirement already satisfied: httptools==0.0.13; sys_platform != "win32" and sys_platform != "cygwin" and platform
_python_implementation != "pypy" in /home/vhawk19/.local/lib/python3.7/site-packages …
Run Code Online (Sandbox Code Playgroud)

python python-3.x asgi uvicorn

2
推荐指数
5
解决办法
1万
查看次数

在 ubuntu 服务器上使用 uvicorn 运行 fastapi 应用程序

我正在处理在 FastAPI 上对远程 ubuntu 服务器进行的项目沉积。我将尝试通过命令从终端(使用 SSH 连接)运行项目

gunicorn -k uvicorn.workers.UvicornWorker main:app
Run Code Online (Sandbox Code Playgroud)

输出是

gunicorn -k uvicorn.workers.UvicornWorker main:app
[2020-07-14 15:24:28 +0000] [23102] [INFO] Starting gunicorn 20.0.4
[2020-07-14 15:24:28 +0000] [23102] [INFO] Listening at: http://127.0.0.1:8000 (23102)
[2020-07-14 15:24:28 +0000] [23102] [INFO] Using worker: uvicorn.workers.UvicornWorker
[2020-07-14 15:24:28 +0000] [23104] [INFO] Booting worker with pid: 23104
[2020-07-14 15:24:28 +0000] [23104] [INFO] Started server process [23104]
[2020-07-14 15:24:28 +0000] [23104] [INFO] Waiting for application startup.
[2020-07-14 15:24:28 +0000] [23104] [INFO] Application startup complete.
Run Code Online (Sandbox Code Playgroud)

但我需要该项目在服务器的 IP 地址上可用。如果我尝试像 …

gunicorn fastapi uvicorn

2
推荐指数
1
解决办法
4893
查看次数

在 Fastapi 应用程序上使用 loguru-log 请求参数进行 Python 日志记录

我有一个 fastapi 应用程序,我想记录在它上面发出的每个请求。我正在尝试为此使用 loguru 和 uvicorn,但我不知道如何打印与每个请求关联的标头和请求参数(如果有)。

我想要这样的东西:

INFO 2020-08-13 13:36:33.494 uvicorn.protocols.http.h11_impl:send - 127.0.0.1:52660 - "GET 
/url1/url2/ HTTP/1.1" 400 params={"some": value, "some1":value}
Run Code Online (Sandbox Code Playgroud)

有办法吗?谢谢你的帮助。

这里有一些链接:

loguru uvicorn fastapi

python logging fastapi uvicorn

2
推荐指数
1
解决办法
4322
查看次数

在 FastAPI / Uvicorn 中接受 gzipped body

我正在将FastAPIUvicorn一起使用来实现 u-service,它接受请求正文中的 json 有效负载。由于请求正文可能非常大,我希望服务接受 gzip 压缩。我该如何做到这一点?

到目前为止,如下:

  • 添加了GZip 中间件,但它对响应进行编码,而不是解码请求
  • 在我的请求中添加了“内容编码:gzip”

失败并响应:

状态:400 错误请求
{“detail”:“解析正文时出错”}

python fastapi uvicorn

2
推荐指数
1
解决办法
8594
查看次数

标签 统计

uvicorn ×10

fastapi ×9

python ×7

https ×2

jinja2 ×2

asgi ×1

gunicorn ×1

heroku ×1

logging ×1

python-3.x ×1

reactjs ×1

server ×1

tensorflow ×1