一、 从前有个程序员,他以为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("欢迎来到我的小店!")

最低0.47元/天 解锁文章
1258

被折叠的 条评论
为什么被折叠?



