Получение AttributeError: объект 'ASGIRequest' не имеет атрибута 'get' в daphne django

Я пытаюсь запустить свой fastapi код на веб-сервере daphne вместо uvicorn, потому что моя конечная цель - запустить его на Android, где uvicorn недоступен. На данный момент я отлаживаю свое приложение уже несколько часов. Настроил все. Вот мой код:

settings.py

urlconf.py

from django.urls import path
import views

urlpatterns = [
    path('coordinates/', views.main),
  
] 

views.py

from fastapi import FastAPI
from datetime import datetime
from pydantic import BaseModel
from fastapi.middleware.cors import CORSMiddleware
def main(response):     
    app = FastAPI()


    origins = ["*"]

    app.add_middleware(
        CORSMiddleware,
        allow_origins=origins,
        allow_credentials=True,
        allow_methods=["*"],
        allow_headers=["*"],
    )

    @app.post("/") #get
    def root():
        return {"message": "Hello World"}

    directionX = 0
    directionY = 0
    Gas = 0
    @app.get("/coordinates/") #post is used to get data, but I can send it using get and query parameters response_model=Item)
    def getcoordinates(direction_x,direction_y,gas): #http://127.0.0.1:8000/coordinates/?direction_x=0&direction_y=10&gas=50
        global directionX,directionY, Gas #changed async def to def 
        directionX = direction_x
        directionY = direction_y
        Gas = gas
        return {"data":(direction_x,direction_y,gas)}


    return HttpResponse(status=200) #works, ok

asgi.py

"""
ASGI config for myproject 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/3.2/howto/deployment/asgi/
"""

import os

from django.core.asgi import get_asgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings') #myproject.settings

application = get_asgi_application()

Команды терминала для запуска файлов:

daphne -b 0.0.0.0 -p 8000  myproject.asgi:application

Журнал ошибок при посещении http://0.0.0.0:8000/coordinates в браузере:

Большое спасибо всем, кто может помочь мне с этим!

Daphne поддерживается проектом Django, но вы можете установить его самостоятельно. Чтобы установить его, сначала перейдите в виртуальную среду, если вы ее используете, затем выполните:

python -m pip install daphne

Затем удалите код FastAPI из представлений Django в отдельный файл, например, main.py

from fastapi import FastAPI
from datetime import datetime
from pydantic import BaseModel
from fastapi.middleware.cors import CORSMiddleware

app = FastAPI()


origins = ["*"]

app.add_middleware(
    CORSMiddleware,
    allow_origins=origins,
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

@app.post("/") #get
def root():
    return {"message": "Hello World"}

...

Теперь, если вы перейдете в тот же каталог, что и ваш main.py, вы можете запустить ваш файл с помощью:

daphne -b 0.0.0.0 -p 8000 main:app
Вернуться на верх