我的url模式中有一个不需要的空格,我认为当我试图与我的Django
后端握手我的Flutter
应用程序时,这会造成麻烦.我知道在回答中也有类似的问题,但我找不到这个问题是从哪里来的,也不知道如何解决它.这些是我的URL模式,当我try 与WebSocket握手时,我在Django
终端中收到以下错误:
Not Found: /ws/chat_app/sjfAmH
"GET /ws/chat_app/sjfAmH HTTP/1.1" 404 4349
当我try 在浏览器中访问WebSocket终结点时,出现404错误:
使用项目.urls中定义的URLconf,Djangotry 了以下方法 URL模式,按以下顺序排列:
- 管理/
- Ws/chat_app/(?p<;唯一id>;\w+)/$ 在那里,我发现了这个不需要的空格.
我有一个名为chat_app
的Django应用程序,我在其中定义了我的WebSocket使用者类.然后,我添加了路由,指向routing.py
文件中的那个消费者类:
from django.urls import re_path
from .consumers import ChatConsumer
# The WebSocket URL pattern for chat rooms is defined by this code
websocket_urlpatterns = [
re_path(r'chat_app/(?P<unique_id>\w+)/$', ChatConsumer.as_asgi()),
]
此外,我已经将chat_app添加到settings.py
个已安装的应用程序中,并将URL包含在我的Django项目urls.py
中:
from django.contrib import admin
from django.urls import include, path
from chat_app.routing import websocket_urlpatterns
urlpatterns = [
path('管理/', admin.site.urls),
...,
path('ws/', include(websocket_urlpatterns)),
]