我的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相关问答推荐

NP.round解算数据后NP.unique

有没有一种方法可以从python的pussompy比较结果中提取文本?

将9个3x3矩阵按特定顺序排列成9x9矩阵

Stacked bar chart from billrame

连接一个rabrame和另一个1d rabrame不是问题,但当使用[...]'运算符会产生不同的结果

如何使regex代码只适用于空的目标单元格

Numpyro AR(1)均值切换模型抽样不一致性

Python日志(log)模块如何在将消息发送到父日志(log)记录器之前向消息添加类实例变量

从嵌套极轴列的列表中删除元素

计算机找不到已安装的库'

如何在Python中将超链接添加到PDF中每个页面的顶部?

如何将返回引用的函数与pybind11绑定?

高效生成累积式三角矩阵

如何获取给定列中包含特定值的行号?

VSCode Pylance假阳性(?)对ImportError的react

Scipy.linprog的可行性有问题吗?(A_ub@x0<;=b_ub).all()为True-但是-linprog(np.zeros_like(X0),A_ub=A_ub,b_ub=b_ub)不可行

如何在基于时间的数据帧中添加计算值

对包含JSON列的DataFrame进行分组

如何有效地计算所有输出相对于参数的梯度?

保存由PYTHON在EXCEL中所做更改的问题