gpt4 book ai didi

django - 部署应用程序 Django Rest 时运行 ASGI 环境的问题

转载 作者:行者123 更新时间:2023-12-05 06:21:57 26 4
gpt4 key购买 nike

我正在使用 Django 开发一个应用程序,我最初使用 WSGI 环境将它部署在 Google Cloud Platform 上,现在我在应用程序中添加了内容并使用了 channel ,因此我必须从 WSGI 转移到 ASGI,但我越来越使用 ASGI 环境部署到 Google Cloud Platform 时出错

我收到错误:respiter = self.wsgi(environ, resp.start_response) TypeError: __call__() takes 2 positional arguments but 3 were given

我在使用ASGI environmnet的时候注释掉了WSGI文件的所有内容,下面是我的相关代码:

ASGI 文件:

import os
import django
from channels.routing import get_default_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'Frames.settings')
django.setup()
application = get_default_application()

WSGI 文件(我已评论):

"""
WSGI config for Frames project.

It exposes the WSGI callable as a module-level variable named ``application``.

For more information on this file, see
https://docs.djangoproject.com/en/2.2/howto/deployment/wsgi/


import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'Frames.settings')

application = get_wsgi_application()"""

ma​​in.py:

from Frames.asgi import application
app = application

Settings.py(主要变化,我已经从settings.py中删除了所有与WSGI相关的内容)


ASGI_APPLICATION = "Frames.routing.application"

CHANNEL_LAYERS={
"default":{
"BACKEND": "channels_redis.core.RedisChannelLayer",
"CONFIG": {
"hosts": [("localhost", 6379)],
},
},
}

如何运行ASGI环境?如果我在展示我的代码时遗漏了什么,我也可以展示,我无法理解问题所在,我部署 ASGI 应用程序的方式是否正确?

最佳答案

App Engine Standard 目前不支持 ASGI。

要使用 ASGI,您应该使用 App Engine Flexible,您可以在其中进一步调整环境。

然后,您可能会发现有关 Creating Persistent Connections with WebSockets 的 GAE flex 文档中的指南很有用。 .

关于django - 部署应用程序 Django Rest 时运行 ASGI 环境的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59527805/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com