我的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模式,按以下顺序排列:

  1. 管理/
  2. Ws/chat_app/(?p<唯一id>\w+)/$ 在那里,我发现了这个不需要的空格.

Those are my URL patterns URL_patterns

我有一个名为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)),
]

推荐答案

空白是URL模式本身的not部分.这就是Django lists模式try 的方式.因此,空格表示包含模式,但这些不在URL模式本身中.

如果您因此而访问以下链接:

/ws/chat_app/sjfAmH/

它会开火的.注意trailing slash这个数字.这就是为什么模式不匹配的原因.

Python相关问答推荐

从一个系列创建一个Dataframe,特别是如何重命名其中的列(例如:使用NAs/NaN)

在Python中,从给定范围内的数组中提取索引组列表的更有效方法

计算分布的标准差

不能使用Gekko方程'

跳过嵌套JSON中的级别并转换为Pandas Rame

在numpy数组中寻找楼梯状 struct

如何使用Azure Function将xlsb转换为xlsx?

删除特定列后的所有列

在Django中重命名我的表后,旧表中的项目不会被移动或删除

TypeError:';Locator';对象无法在PlayWriter中使用.first()调用

FileNotFoundError:[WinError 2]系统找不到指定的文件:在os.listdir中查找扩展名

按最大属性值Django对对象进行排序

Pandas:新列,从列表中采样,基于列值

IpyWidget Select 框未打开

通过PyTorch中的MIN函数传递渐变

是否在DataFrame中将所有列设置为大写?

使用Python下载pdf url

如何在JAX中训练具有多输出(向量值)损失函数的梯度下降模型?

Abstral@Property-实例化部分实现的类?

拆分字符串,保留引用的子字符串