原始代码看起来像这样,它可以工作。
def my_index(request):
global account
if request.session.get('account',False):
account=request.session['account']
else:
return HttpResponseRedirect("http://login.passport.com/");
print "login check pass"
...
当我尝试将检查行放入方法时,就会出错。
终端打印Pos:A和Pos:B,但页面没有重定向到login.passport.com
继续打印“登录检查通行证”
我试过pdb.set_trace(),它通过了HttpResponseRedirect,但我仍然找不到任何错误。
有人给我一个线索吗?
def login_check(request):
global account
if request.session.get('account',False):
account=request.session['account']
else:
print "Pos:A"
return HttpResponseRedirect("http://login.passport.com/");
print "Pos:B"
def my_index(request):
global account
login_check(request)
print "login check pass"
...
答案 0 :(得分:1)
login_check
内my_index
的结果不执行任何操作。你也需要从那里归还。
另外两点:永远不会达到print Pos:B
;更严重的是,你应该从不使用全局变量来存储Django中的每个请求状态。一个进程可能会持续许多请求,因此保留仅与单个请求中的信息相关的变量是危险的。