在Django中使用相同的配置,访问相同的URL
http://<URL>/basic/insert/adafd
有时会给我404,而它会给我200以后。知道怎么会发生这种情况以及如何解决它?
(看起来在我尝试使用频道后发生)
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^insert/(.*)$', views.insert),
url(r'^list$', views.list),
]
其他代码如下:
def listfrom(request, last):
stack = infoStack.objects.all()
listing = []
for info in stack:
if info.id()>last:
listing.append(info.as_dict())
request.session['last'] = info.id()
return render(request, "basic/list.html", {"listings": json.dumps(listing)})
def list(request):
last = 0
if request.session.keys():
sid = request.session.session_key
s = Session.objects.get(pk=sid)
last = s.get_decoded()['last']
return listfrom(request, last)
def insert(request, info):
ip = get_client_ip(request)
q = infoStack()
q.infoIP = ip
q.infoText = info
q.save()
response = HttpResponse()
response.status_code = 200
return response
与频道相关的配置/代码如下:
@channel_session
def ws_message(message):
print "message"
@channel_session
def ws_connect(message):
print "connect"
Group("wsg").add(message.reply_channel)
message.reply_channel.send({"accept": True})
@channel_session
def ws_disconnect(message):
print "disconnect"
Group("wsg").discard(message.reply_channel)
# routing.py
from basic.views import ws_message, ws_connect, ws_disconnect
channel_routing = {
'websocket.connect': ws_connect,
'websocket.receive': ws_message,
'websocket.disconnect': ws_disconnect,
}
答案 0 :(得分:0)
最终发现了一篇关于此事的帖子https://github.com/django/channels/issues/489
基本上,在我卸载了redis-server并重新安装后,问题就出现了。