Django基础教程(107)Django请求和响应之可浏览的API:别翻了!这就是你要的Django请求响应“天书”,连API都长眼睛了!

一、 从前有个程序员,他以为Django是条蛇……

当我第一次听说Django时,真以为它是某种热带蟒蛇。后来才知道,这居然是个能用Python写网站的神器!但更让我震惊的是,它自带一个“会说话的API”——就是那种你访问网址时,不仅能看到数据,还能直接在上面测试的智能接口。

今天咱们不聊蟒蛇,只聊怎么让Django的请求响应流程像外卖App一样直观。想象一下:你点外卖(发请求),餐厅处理订单(Django处理),骑手送餐(返回响应)。而可浏览API就像是附赠的智能小票,既能看内容又能直接备注下次需求!

二、 Django的MTV模式:其实就是个“外卖工厂”

先打破一个迷思:Django的MTV模式没那么玄乎,本质上就是精心设计的外卖流水线:

  • Model(厨房备料区):定义数据结构和关系,像餐厅的食材仓库
  • Template(餐盒包装部):把做好的菜装进美观的餐盒(HTML)
  • View(厨师团队):核心处理单元,接收订单、炒菜、指挥装盒

而请求响应流程,就是完整的外派配送链:

用户点击 → URL路由派单 → View厨师接单 → 数据库取食材 → 模板装盒 → 返回热乎响应

三、 深入请求对象:HttpRequest的“口袋”里都有啥?

每个到达Django的请求,都是一个装满信息的HttpRequest对象。就像外卖订单包含客户地址、口味偏好、支付方式一样:

def simple_view(request):
    # 看看这个请求对象里藏了多少宝贝
    print(f"客户从【{request.META['REMOTE_ADDR']}】来的")
    print(f"他用的是【{request.META.get('HTTP_USER_AGENT', '未知')}】设备")
    
    if request.method == 'POST':
        print(f"他提交了这些数据:{request.POST}")
    elif request.method == 'GET':
        print(f"他在URL里问了这些:{request.GET}")
    
    # 甚至能知道他现在登录没
    if request.user.is_authenticated:
        print(f"老顾客啊,{request.username}你好!")

实际开发时,你可能会这样实用地提取信息:

# 获取查询参数(比如 ?name=张三&age=20)
name = request.GET.get('name', '匿名用户')
age = request.GET.get('age', 0)

# POST提交的表单数据
if request.method == 'POST':
    email = request.POST.get('email')
    password = request.POST.get('password')

# 上传的文件?也没问题!
uploaded_file = request.FILES.get('avatar')

四、 构建响应:从“土味HTML”到“高端JSON”

Django的响应就像包装外卖,有多种豪华套餐可选:

1.0 基础版——直接返回字符串:

from django.http import HttpResponse

def welcome(request):
    return HttpResponse("欢迎来到我的小店!")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

值引力

持续创作,多谢支持!

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

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

打赏作者

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

抵扣说明:

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

余额充值