Django请求响应对象

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

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-Typeapplication/json

python 复制代码
from django.http import JsonResponse  
  
def my_json_view(request):  
    data = {  
        'key1': 'value1',  
        'key2': 'value2',  
    }  
    return JsonResponse(data)
相关推荐
winfredzhang10 分钟前
用 Python + wxPython 造一个照片工具箱:PDF / 加密ZIP / MP4 / 归档,以及我在这过程中踩到的 4 个坑
python·pdf·zip·mp4·移动
卷无止境16 分钟前
FastAPI 后台任务的边界,以及 Celery、Redis 与自建调度系统的选择
后端·python
卷无止境18 分钟前
Linux + Docker + FastAPI 工程化实践指南
后端·python·fastapi
AI绘画哇哒哒9 小时前
【建议收藏!】35岁后端血泪忠告,这3类人别硬转Agent(过来人亲述)
java·人工智能·后端·ai·程序员·大模型·agent
聪明蛋子哟9 小时前
Stagehand v3多语言SDK:Python/Go/Rust/Java下的浏览器自动化统一方案
python·golang·rust
唐青枫10 小时前
一个值多种形态:Zig union、Tagged Union 与内存布局实战
后端
今天AI了吗10 小时前
Python 基础语法(一):常量、变量、输入输出与运算符
开发语言·数据库·人工智能·python·sql·深度学习·机器学习
卷无止境10 小时前
Windows 上丝滑开发 Python,并稳定构建 Docker 镜像
后端·python·docker
Nturmoils10 小时前
备份完不算完,先还原到临时库验一遍
后端
TELL52111 小时前
selenium webdriver 第二次初始化的异常
开发语言·python