Django请求响应对象

在 Django 中,请求(request)和响应(response)对象是处理 HTTP 请求和返回 HTTP 响应的核心。它们分别由 Django 的 HttpRequest 和 HttpResponse 类表示。

HttpRequest 对象

HttpRequest 对象包含了客户端发送的所有 HTTP 请求信息。Django 在每个视图函数中都会传递一个 HttpRequest 对象作为第一个参数

python 复制代码
from django.http import HttpResponse  
from django.shortcuts import render  
  
def my_view(request):  
    # 获取 GET 参数  
    param = request.GET.get('param_name', 'default_value')  
      
    # 获取 POST 参数  
    post_param = request.POST.get('post_param_name', 'default_value')  
      
    # 获取用户信息  
    user = request.user  
      
    # 获取请求头信息  
    user_agent = request.META.get('HTTP_USER_AGENT', 'Unknown')  
      
    # 返回一个简单的 HTTP 响应  
    return HttpResponse(f"Param: {param}, User Agent: {user_agent}")

HttpResponse 对象

HttpResponse 对象用于向客户端发送 HTTP 响应。你可以传递一个字符串作为响应内容,或者可以传递一个迭代器(用于处理大文件等)。

python 复制代码
from django.http import HttpResponse  
  
def my_view(request):  
    # 创建一个简单的 HTTP 响应  
    response = HttpResponse("Hello, world!")  
      
    # 设置自定义响应头  
    response['Custom-Header'] = 'MyValue'  
      
    # 设置 HTTP 状态码  
    response.status_code = 404  
      
    # 设置一个 cookie  
    response.set_cookie('my_cookie', 'cookie_value')  
      
    return response

JsonResponse 对象

对于返回 JSON 数据的场景,Django 提供了 JsonResponse,它会自动设置 Content-Type 为 application/json。

python 复制代码
from django.http import JsonResponse  
  
def my_json_view(request):  
    data = {  
        'key1': 'value1',  
        'key2': 'value2',  
    }  
    return JsonResponse(data)
相关推荐
专业程序开发源5 小时前
SSM校园拍摄交流服务平台36936-计算机课程设计、毕业设计
java·spring boot·后端·python·elasticsearch·php·课程设计
Gopher_HBo5 小时前
zap采样器与性能优化内幕
后端
变量探索SEQVEC5 小时前
我埋了 8 个假文件,看谁会上钩:12 天 502 次扫描实录
后端
llqbzllll5 小时前
HashMap 的核心结构:从一次 put 看到扩容、桶迁移与树化边界
后端
晚安code5 小时前
设计模式入门:吃透 SOLID 原则与迪米特法则,再学 5 个高频模式
后端·设计模式
wuyk5555 小时前
Python 网络爬虫入门到实战 第 04 章:请求头、UA 伪装、超时、异常处理、基础反爬绕过
开发语言·爬虫·python
kaiyou20266 小时前
用户研究岗秋招,统计分析能力怎么学习和证明?
数据库·python·学习
weixin_440730506 小时前
装饰器decorator总结(函数即是变量、高阶函数、嵌套函数、参数组)
python·装饰器
零基础1236 小时前
LLM Agent 驱动的物模型构建:从设备手册到边缘接入的自动化实践
运维·人工智能·经验分享·python·自动化
zyj8890916 小时前
工厂标识系统设计规范?工厂标识牌有哪些类型?
python·设计规范