在视图函数中使用请求参数

时间:2017-03-11 19:15:11

标签: python django request

def choice(request):
    return render(request,'LoginPage/choice.html')

这是我的views.py文件中的示例视图函数。在函数调用中使用request参数是什么?是否可以用来保存用户在浏览网站时登录的记录?我对django来说真的很新。请帮忙

3 个答案:

答案 0 :(得分:0)

From docs on render

  

request

     

用于生成此响应的请求对象。

如果您在模板设置中设置django.template.context_processors.request(默认情况下已完成),则每个RequestContext都将包含一个变量请求,即当前的HttpRequest。

作为HttpRequest的request变量包含有关当前请求的数据。可以通过属性访问。

例如,

在视图中。

在视图中,请求可以作为

访问
def choice(request):
    if request.user.is_authenticated():
        ... # Do something for logged-in users.
    else:
        ... # Do something for

匿名用户。

在模板中。

在模板中,您可以使用{% if user.is_authenticated %}(如果设置了auth上下文处理器)

{% if user.is_authenticated %}
    <h1>Hi Welcome back</h2>
{% elif %}
    <h1>Hi please login</h2>
{% endif %}

documentation for HttpRequest

上记录了完整的属性列表

答案 1 :(得分:0)

这是我在项目中的一个简单示例,展示了如何使用请求参数来保持访问次数

def about(request):
    if request.session.test_cookie_worked():
        print("TEST COOKIE WORKED!")
        request.session.delete_test_cookie()
    visitor_cookie_handler(request)
    visits = request.session['visits']
    context_dict = {'visits': visits}
    print(request.environ) # Other data that you can access through the request argument
    print(request.user)
    return render(request, 'rango/about.html', context_dict)

visitor_cookie_handler,它也接受与参数相同的请求

def visitor_cookie_handler(request):
    # Use COOKIES.get() to retrieve a specific cookie
    # All cookie values are returned as strings
    visits = int(get_server_side_cookie(request, 'visits', '1'))

    last_visit_cookie = get_server_side_cookie(request,
                                               'last_visit',
                                               str(datetime.now()))
    last_visit_time = datetime.strptime(last_visit_cookie[:-7],
                                        '%Y-%m-%d %H:%M:%S')

    # If it's been more than a day since last visit..
    if (datetime.now() - last_visit_time).days > 0:
        visits += 1

        request.session['last_visit'] = str(datetime.now())
    else:
        visits = 1
        request.session['last_visit'] = last_visit_cookie

    # Update/set the visits cookie
    request.session['visits'] = visits

答案 2 :(得分:0)

您可以将request用于以下内容: post 以及来自 htm表单的 get 请求 session

关注此链接更多信息:

django request parameters