我在本地计算机上开发了一个django网站,现在是时候将它上传到服务器上了。我希望在我工作的时候,只有登录的用户才能看到它。 我想到了
{% if is_logged_in %}
{% else %}
{% endif %}
我的base.py模板中的结构,但并非我的所有视图都返回一个Context,因此它并不总是有效。
有没有简单的方法而无需更改大量代码来隐藏每个页面?
答案 0 :(得分:4)
使用django.contrib.auth.decorators.login_required
。它是一个装饰器,可以防止用户查看任何内容,如果他们没有登录。或者您可以找到中间件:http://djangosnippets.org/snippets/1179/。
中间件会更好,因为它不引人注目,你可以在以后删除它。
答案 1 :(得分:4)
有两种合理的解决方案。
mod_wsgi
和mod_python
,您可以让Apache通过Django对其用户进行身份验证。答案 2 :(得分:0)
另一种合理的方法是客户证书。这样,您还可以测试不需要登录的部件
答案 3 :(得分:0)
或使用.htaccess保护服务器上的整个目录,这也可以防止谷歌在开发中找到该网站。