从 Postman 到 Django 视图表单请求和json请求

举报
周杰伦本人 发表于 2025/08/31 20:33:35 2025/08/31
【摘要】 从 Postman 到 Django 视图表单请求和json请求 表单请求一、整体流程速览打开 Postman → 选 POST → 填 URL http://127.0.0.1:8000/register/Body → x-www-form-urlencoded → 填 username=itcast&password=123456点 Send → Django 视图 register(...

从 Postman 到 Django 视图表单请求和json请求

表单请求

一、整体流程速览

  1. 打开 Postman → 选 POST → 填 URL http://127.0.0.1:8000/register/

  2. Body → x-www-form-urlencoded → 填 username=itcast&password=123456

  3. 点 Send → Django 视图 register(request) 接收 → 打印或入库 → 返回 HttpResponse("OK")

  4. 浏览器 / Postman 看到 “OK” → 流程闭环。

二、可能出现的 403 Forbidden
Django 默认启用 CSRF 校验,POST 不带 token 会被拒绝。
解决:开发阶段把 settings.pyMIDDLEWARE'django.middleware.csrf.CsrfViewMiddleware' 暂时注释掉,重启即可。

三、视图函数 3 步模板

from django.http import HttpResponse
from book.models import BookInfo

def register(request):
    # 1. 接收表单
    username = request.POST.get('username')
    password = request.POST.get('password')

    # 2. 业务逻辑(示例:直接打印)
    print('收到表单:', username, password)

    # 3. 响应
    return HttpResponse('注册成功')

json数据接收

1️⃣ 构造 JSON
Postman 里选 POST → raw → JSON,只认双引号,末尾别留逗号:

{"username":"itcast","password":123456}

2️⃣ 发送
URL 填 http://127.0.0.1:8000/json/,点击 Send

3️⃣ 视图函数骨架

import json
from django.http import HttpResponse

def json_view(request):
    body_json = request.body.decode()          # bytes → str
    data      = json.loads(body_json)          # str → dict
    username  = data.get('username')
    return HttpResponse(f'收到:{username}')

将 bytes 解码成字符串

把 JSON 字符串转成 Python 字典

根据键取值

4️⃣ 路由

path('json/', views.json_view),

5️⃣ 免 403
开发阶段把 settings.py

'django.middleware.csrf.CsrfViewMiddleware'

暂时注释掉,重启服务。

6️⃣ 验证
Postman 看到返回 收到:itcast,控制台打印完整 dict,流程跑通!

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。