“提交项目”

This commit is contained in:
2026-03-03 14:43:13 +08:00
commit fba98b388c
492 changed files with 146765 additions and 0 deletions

View File

@@ -0,0 +1,56 @@
"""
ASGI config for hertz_server_django project.
It exposes the ASGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/5.2/howto/deployment/asgi/
"""
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'hertz_server_django.settings')
# Import Django first to ensure proper initialization
from django.core.asgi import get_asgi_application
# Initialize Django ASGI application early to ensure the AppRegistry
# is populated before importing code that may import ORM models.
django_asgi_app = get_asgi_application()
# Import other modules AFTER Django setup
from django.conf import settings
from channels.routing import ProtocolTypeRouter, URLRouter
from channels.auth import AuthMiddlewareStack
from channels.security.websocket import AllowedHostsOriginValidator
# Import websocket routing AFTER Django setup to avoid AppRegistryNotReady
from hertz_demo import routing as demo_routing
if 'hertz_studio_django_yolo' in settings.INSTALLED_APPS:
from hertz_studio_django_yolo import routing as yolo_routing
websocket_urlpatterns = (
demo_routing.websocket_urlpatterns +
yolo_routing.websocket_urlpatterns
)
else:
websocket_urlpatterns = demo_routing.websocket_urlpatterns
# 在开发环境下放宽Origin校验便于第三方客户端如 Apifox、wscat调试
websocket_app = AuthMiddlewareStack(
URLRouter(
websocket_urlpatterns
)
)
if getattr(settings, 'DEBUG', False):
application = ProtocolTypeRouter({
"http": django_asgi_app,
"websocket": websocket_app,
})
else:
application = ProtocolTypeRouter({
"http": django_asgi_app,
"websocket": AllowedHostsOriginValidator(websocket_app),
})