你好,我是 django/python 新手,需要一些帮助来理解下面的代码。
def post_comment(request, new_comment):
if request.session.get('has_commented', False):
return HttpResponse("You've already commented.")
c = comments.Comment(comment=new_comment)
c.save()
request.session['has_commented'] = True
return HttpResponse('Thanks for your comment!')
我感到困惑的是 if request.session.get('has_commented',False) 如果用户发表了评论,则“has_commented”键设置为 true,那么您是否会检查“has_commented”是否设置为 true 以确保用户不会发布其他评论,而不是检查“has_commented”是否为 false。我的逻辑不正确吗?另外, session key “has_commented”来自哪里?
最佳答案
函数 request.session.get 有 2 个参数,即
- 键('has_commented')
- 默认值(False)
该函数将尝试返回键的值,但如果键不存在,或者值为 NULL,则将返回默认值。
换句话说,如果“has_commented”的值为 True,则 if 语句将运行。但是,如果 session 中没有 'has_comment' 键,request.session.get 将返回默认值 False,并且 if 语句将不会运行。
session key “has_commented”源自以下行:
request.session['has_commented'] = True
关于python - 了解 django 文档代码 - session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14460042/