Django HttpRequest 对象的常用属性

以下是 request 对象中你经常能用到的其他核心属性:

属性类型说明示例
request.pathstr请求的完整路径(含脚本前缀)/dashboard/
request.path_infostr请求路径(去除了脚本前缀)/dashboard/
request.get_full_path()str路径 + 查询字符串/dashboard/?page=2
request.get_raw_uri()str完整请求 URI(含协议、host、路径等)https://example.com/dashboard/?q=test
request.methodstr请求方法'GET''POST''PUT''DELETE'
request.GETQueryDictGET 参数(URL 查询参数)?name=Tom&age=20 → request.GET['name']
request.POSTQueryDictPOST 表单数据提交表单时使用
request.FILESMultiValueDict上传的文件数据配合 enctype="multipart/form-data" 使用
request.COOKIESdict客户端 Cookierequest.COOKIES.get('sessionid')
request.sessionSessionStore当前用户的 session 对象request.session['user_id'] = 123
request.userUser 或 AnonymousUser当前登录用户(需配合 Django auth)request.user.is_authenticated
request.METAdictHTTP 请求头和其他元数据request.META['HTTP_USER_AGENT']request.META['REMOTE_ADDR'](IP)
request.schemestr协议类型'http' 或 'https'
request.content_typestr请求体的 MIME 类型'application/json'
request.content_lengthint or None请求体长度用于验证上传大小
request.bodybytes原始请求体数据(用于非表单如 JSON)json.loads(request.body)

举个例子说明这些属性的用法

def my_view(request):
    print("路径:", request.path_info)           # /my/page/
    print("完整路径:", request.get_full_path()) # /my/page/?q=test
    print("方法:", request.method)              # GET 或 POST
    print("GET参数:", request.GET.dict())       # {'q': 'test'}
    print("用户IP:", request.META.get('REMOTE_ADDR'))
    print("User-Agent:", request.META.get('HTTP_USER_AGENT'))
    print("是否HTTPS:", request.scheme == 'https')
    print("当前用户:", request.user.username)
    print("Session中的app:", request.session.get("app"))
    
    if request.method == "POST":
        print("POST数据:", request.POST.dict())
        print("上传文件:", request.FILES.get("avatar"))

    return HttpResponse("OK")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一路生花工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值