Skip to content

request对象

参考:https://www.cnblogs.com/hao-guo/p/12672224.html

python
# 请求的url,下面几个都行
request.path
request.path_info
request.get_full_path()
request.get_full_path_info()

# 有关响应的详细信息,包括很多东西
request.META
# 请求的IP
request.META.get("REMOTE_ADDR")

# 判断和取get请求路径上的参数
request.GET

判断和取get请求路径上的参数

GET请求时,url上携带的参数,在路由上无需特殊处理,只需要在视图函数中通过request.GET.get获取就好了。

python
# urls.py
re_path(r'menu/list/$', menu.menu_list, name='menu_list'),

# viwes.py

def menu_list(request):
    """ 菜单列表 """
    # http://127.0.0.1:8000/rbac/menu/list/?mid=2
    menu_id = request.GET.get("mid")  # 
    print(request.GET) # <QueryDict: {'mid': ['2']}>
    
    # http://127.0.0.1:8000/rbac/menu/list/
    menu_id = request.GET.get("mid")  # 
    print(request.GET) # <QueryDict: {}>
钩子方法执行时间节点参数返回值重要程序
process_request在视图函数执行之前执行request,这个request和视图中的request是同一个1. 如果是None,就表示正常执行完该中间件,然后请求往后继续;
2. 如果返回一个render、redirect、或者HttpResponse对象,请求就会直接返回,该中间件后面的中间件和后续试图函数都不执行了,具有拦截的作用。
五星