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)
相关推荐
2601_962885728 小时前
如何用 Python 把 K 线重采样成任意周期?
开发语言·python
打工仔折腾 AI9 小时前
在 Ubuntu ARM64 部署 Q1 V3.0 MuJoCo 模型:加载、单步推理与执行器响应解析
linux·运维·人工智能·python·深度学习·ubuntu·性能优化
_孤傲_9 小时前
快速掌握 MySQL 语法
数据库·后端·mysql
信誓旦旦的程序猿9 小时前
【Python量化实战宝典 #21】北向资金跟随手册:聪明钱择时信号(Python 可跑)
python·1024程序员节·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
严谨的麻辣烫10 小时前
静态 ISP 代理请求超时怎么排查?Python 与 curl 实战
python·http·requests·1024程序员节·网络排障
IT_陈寒10 小时前
Java静态变量初始化坑得我头皮发麻
前端·人工智能·后端
步行cgn11 小时前
Thymeleaf 编辑表单详解:从字段回填到模拟 PUT 请求
后端
KeepRobots11 小时前
11-01 温哥华不回拨:用 60 行 Python 查你的工单系统会不会差一小时(KeepRobots 工程笔记)
python
xiao77mwq11 小时前
你以为 OCR 慢?实测 81.3 s 里全是故障代价:如何把「定格态」消掉,让耗时从 6.5 s 到 13 倍差距显出原形
python
深圳市益普科技有限公司11 小时前
半导体良率管理YMS:良率与设备参数的相关性,先拉哪几组数据
人工智能·python·算法