我是Django的新手。
我想在应用程序每次收到POST请求时更新浏览器中的页面。目前,我通过POSTMAN发送POST请求。最后,这是另一个Web服务器,它将通过POST请求发送数据。
我找不到任何解决方案。
这是我认为的代码:
@csrf_exempt
def prem(request):
if request.method == 'GET':
print("GET")
context = {'contenu': request.GET.get("request_received", "nothing") }
elif request.method == 'POST':
print("POST")
datar = request.GET.get('request_received','rien')
context = { 'request_received' : datar }
return render(request, 'polls/seco.html', context)
模板中的代码:
{% if request_received %}
{% csrf_token %}
<p>Message received from POST request : {{ request_received }}</p>
{% endif %}
有人可以帮助我吗?
答案 0 :(得分:0)
根据您所写的内容(在注释中),似乎希望每当收到请求时,该网页即可实时动态更新(无需重新加载)。
这在技术上是不可能的,因为发送响应后django不会保持与客户端的连接。
您必须将传入的发布请求(来自POSTMAN)保存到db。
然后在模板中,您可以使用AJAX连续检查是否有新请求到达,或者使用websocket来保持与用户的连接。
Websocket比AJAX更快。因此,当您在评论中“立即”编写时,它们就是您想要的。在最坏的情况下,AJAX请求可能要花费几秒钟。
在django中,您可以将django-channels用于websockets