- 主题:django login的问题
第一次用django开发网站,我的网站是用户一打开,需要先输入用户密码才能访问其他的
页面,因此我的url是这样的,
url(r'^$', login),
url(r'^monitor/$', monitor),
用户登录之后,才可以转到monitor页面。
在login的view函数是这样的:
get user name and password
if username and pasword is valid
return render_to_response('monitor.html')
else
return render_to_response('login.html')
但是现在的问题是如果用户直接在地址栏里输入www.example.com/monitor/,就可以直
接访问monitor页面了,请问怎么解决这个问题?改url还是login的view函数?
谢谢。
--
FROM 169.226.243.*
不是很懂django,就你这url的正则来看 ,意思不是说 根目录走login monitor/走 monitor吗?
--
FROM 182.92.253.*
给def monitor 加reqiure_login装饰器。
【 在 qwepoi (LadiesMan217) 的大作中提到: 】
: 第一次用django开发网站,我的网站是用户一打开,需要先输入用户密码才能访问其他
的
: 页面,因此我的url是这样的,
: url(r'^$', login),
: ...................
--
FROM 114.111.166.*
@login_required
【 在 qwepoi 的大作中提到: 】
: 第一次用django开发网站,我的网站是用户一打开,需要先输入用户密码才能访问其他的
: 页面,因此我的url是这样的,
: url(r'^$', login),
: ...................
--来自微水木3.2.0
--
FROM 223.72.86.*
monitor/是走 monitor,但是需要login之后才能走。
【 在 gonghao (pipi) 的大作中提到: 】
: 不是很懂django,就你这url的正则来看 ,意思不是说 根目录走login monitor/
走 monitor吗?
--
FROM 72.224.131.*
1、限制访问,view加login_required装饰器
2、login逻辑本身不用自己写,用auth自己的即可。
【 在 qwepoi 的大作中提到: 】
: 第一次用django开发网站,我的网站是用户一打开,需要先输入用户密码才能访问其他的
: 页面,因此我的url是这样的,
: url(r'^$', login),
: ...................
--
FROM 124.207.72.*
如果要全站都认证,可以写个middleware。
【 在 qwepoi (LadiesMan217) 的大作中提到: 】
: 第一次用django开发网站,我的网站是用户一打开,需要先输入用户密码才能访问其他
的
: 页面,因此我的url是这样的,
: url(r'^$', login),
: ...................
--
FROM 101.231.208.*
谢谢,对middleware 不熟悉,能详细点吗?
【 在 koubuyi () 的大作中提到: 】
: 如果要全站都认证,可以写个middleware。
:
: 【 在 qwepoi (LadiesMan217) 的大作中提到: 】
: 的
--
FROM 72.224.131.*
django的文档写得很清楚呢。我简约说一下吧。就是你的每个view函数运行之前以及运行之后你可以再运行一些函数。中间件很简单,就一个类两个方法:
class YourMiddleWare(object):
def process_request(self, request):
"在每个view()运行之前运行一次"
def process_response(self, request, response):
"在每个view()运行之后运行一次"
写了这个东西以后在 settings.py 里面配置一下,django就帮你运行起来了。
【 在 qwepoi (LadiesMan217) 的大作中提到: 】
: 谢谢,对middleware 不熟悉,能详细点吗?
--
FROM 120.42.97.*
这不是官方推荐玩法。
官方本来就提供一个默认的Auth middleware,但并没有通过那个做全站受限。
【 在 koubuyi 的大作中提到: 】
: 如果要全站都认证,可以写个middleware。
: 的
--
修改:dhcn FROM 124.207.72.*
FROM 124.207.72.*