使用Django 会话时,查看会话数据之前是否已设置,如果没有设置初始会话数据,在同一视图中是否是一种好习惯?
如果用户禁用了 cookie,这会对我或用户造成重大问题吗?
(测试 cookie的存在让我有点困惑。但是,如果您使用这些,您将无法记录有关用户最初查看的页面的数据。)
以下是我的 views.py 文件的摘录。在视图中,用户正在访问一个带有游戏的页面。
如果他们之前存储了会话数据——并且如果是第一次观看游戏——视图将修改会话数据以记录他们访问游戏的事实。如果他们没有会话数据,它将在此处为他们初始化。
def game(request, game_name):
game = get_object_or_404(Game, web_name=game_name)
c = { 'game': game }
# game_votes is used to store if user has voted on game yet.
# Also a key in dictionary indicates user has previously visited that game.
game_votes = request.session.get('game_votes', False):
if game_votes:
if not game_votes.has_key(game_name):
game_votes[game_name] = False
request.session['game_votes'] = game_votes
request.session.modified = True
else:
pass
else: # I.e. no session was declared previously.
request.session['game_votes'] = { game_name: False }
request.session['sorting_choice'] = 'PO'
request.session['ip_address'] = request.META['HTTP_X_FORWARDED_FOR']
return render_to_response('game.html', c)
因为这是我第一次使用 Django,所以我想知道我在使用会话时无意中犯了哪些明显的错误。
非常感谢您的专业知识和帮助:)
编辑:
所以只是检查一下:如果用户禁用了 cookie,这不会为他查看的每个页面在数据库中创建一个新的会话条目吗?正确的?