2
我是新的Django,我試圖從其他文件訪問變量。但我不明白他的價值。我不使用DJango身份驗證系統,我登錄到IDP,IDP發回tokenId,uid以及更多數據。python/Django導入的變量是空的
在fileA.py我:
.........
tokenId = ''
.........
def validateToken(tokenId):
...............
returns True or False
def login(request):
.............
global tokenId
tokenId = value/returned/from/server
return HttpResponseRedirect('/loggedin')
,並在用戶它的重定向,代碼去fileB.py:
from fileA import validateToken, tokenId
.........
def menu(request):
if validateToken(tokenId):
return render_to_response('menu/menu.html')
else:
return render_to_response('menu/access_error.html')
如果我做調試我發現,tokenId它的空...但在fileA tokenId有他的值分配,我可以用它來做註銷和工作。所以,我不明白爲什麼當我打電話tokenId從其他文件它沒有價值......
我試圖做的fileA檢查:
def validateToken(): #I don't pass the var because it's global on fileA
.........
returns True or False
而且在FILEB我做的:
from fileA import validateToken
.........
def menu(request):
if validateToken():
return render_to_response('menu/menu.html')
else:
return render_to_response('menu/access_error.html')
但它給出了一個錯誤:[NameError] name'tokenId'它沒有被定義。
但它的定義! :/
我在做什麼錯了?感謝致敬。
即使你能得到這個工作,你**不得**。所有請求都共享模塊級別的任何變量,因此您的'token_id'對其他用戶可見。不要這樣做。 –
那麼,我該如何檢查它的有效標記(用戶確實登錄)並顯示受保護的內容? – Aker666
如果您需要跨請求保留所有內容,則需要將它們存儲在某個地方;大概這裏最好的地方就是會議。 –