我试图sleep(30)
在我的视图的第一行添加。之后,我在两个浏览器选项卡中打开了这个页面。第一个标签页在 30 秒后加载,第二个标签页在 60 秒后加载。与此同时,我能够从另一台电脑打开页面就好了。所以看起来 Django 阻止了来自同一个客户端的并发请求。
这对我的应用程序来说非常好。而且我想确保我的网站将来会以这种方式工作。但是我没有找到任何描述这种 Django 行为的文档或文章。所以我仍然不确定这是一个功能还是只是运气。有人可以解释一下这是如何以及为什么起作用的吗?
我真正需要的是在视图处理时阻止会话。当然我可以使用一些标志或数据库事务。但我不想添加已经在 Django 中实现的功能。
我使用 python 2.6.5、django 1.4、ubuntu 服务器、nginx 和 uwsgi。尝试了 postgresql 和 sqlite。
我的 uwsgi 设置:
<uwsgi>
<pythonpath>/home/admin/app/src</pythonpath>
<app mountpoint="/">
<script>deploy.wsgi</script>
</app>
<workers>4</workers><!-- Not sure this is needed -->
<processes>2</processes>
</uwsgi>
我也用 runserver 命令得到了同样的效果。