开发时隐藏django网站

时间:2010-07-22 11:37:01

标签: python django

我在本地计算机上开发了一个django网站,现在是时候将它上传到服务器上了。我希望在我工作的时候,只有登录的用户才能看到它。 我想到了

{% if is_logged_in %}
{% else %}
{% endif %}

我的base.py模板中的结构,但并非我的所有视图都返回一个Context,因此它并不总是有效。

有没有简单的方法而无需更改大量代码来隐藏每个页面?

4 个答案:

答案 0 :(得分:4)

使用django.contrib.auth.decorators.login_required。它是一个装饰器,可以防止用户查看任何内容,如果他们没有登录。或者您可以找到中间件:http://djangosnippets.org/snippets/1179/

中间件会更好,因为它不引人注目,你可以在以后删除它。

答案 1 :(得分:4)

有两种合理的解决方案。

  1. 使用中间件来要求身份验证(如果需要,我可以在线提供示例,但代码应该是微不足道的)
  2. 在网络服务器中使用身份验证。这样,您只需添加几个IP地址和/或用户即可访问。这些天很容易将您的http身份验证链接到Django以及mod_wsgimod_python,您可以让Apache通过Django对其用户进行身份验证。

答案 2 :(得分:0)

另一种合理的方法是客户证书。这样,您还可以测试不需要登录的部件

答案 3 :(得分:0)

或使用.htaccess保护服务器上的整个目录,这也可以防止谷歌在开发中找到该网站。