发布时间:2026/8/28 11:32:04
从0到RESTful API:Python DRF开发RESTful接口的完整快速指南 从0到RESTful APIPython DRF开发RESTful接口的完整快速指南【免费下载链接】Python-100-DaysPython - 100天从新手到大师项目地址: https://gitcode.com/GitHub_Trending/py/Python-100-DaysPython-100-Days 是一套从 Python 新手到大师的教程项目其中 Day46-60 章节完整讲解了 RESTful API 开发一步步带你装好并配置 Django REST FrameworkDRF再完成序列化器、类视图、JWT 认证和分页过滤最后自己搭出一个可用的 API 服务。前后端分离为什么逼你学 DRF以前页面整个由服务端渲染你不需要关心接口这件事。前后端分离之后不一样了前端只向后台要 JSON所有数据都得走接口层。没有这层前端连一个学生姓名都渲染不出来。 把 DRF 理解成接口层框架。它基于 Django 构建JSON 转换、参数校验、权限检查这些脏活累活都由它代劳你只写业务逻辑。下面以开发一套学生管理 API为例走一遍全流程。URI 怎么写才能让前端不抓狂REST 的思路其实很朴素URL 指向一份数据HTTP 动词说明对它做什么。比如学生列表放在/students/新增学生发 POST 到/students/取单个用 GET/students/3/。更新分两种全量覆盖用 PUT/students/3/只改部分字段用 PATCH/students/3/删除则发 DELETE。记住三条即可URL 里不放动词写/deleteStudent就很不 REST、资源用复数名词、ID 挂在路径末尾。约定写清楚别人不看代码也能猜到怎么调。三步装好 DRF 并配置第一步安装依赖终端执行pip install djangorestframework即可。第二步在settings.py的INSTALLED_APPS里注册rest_framework。第三步配置REST_FRAMEWORK字典新手期先定两件事就够默认每页条数和默认权限类其余项用到再补。INSTALLED_APPS [ rest_framework, # 注册 DRF 应用 ] REST_FRAMEWORK { PAGE_SIZE: 10, # 列表接口默认每页 10 条 DEFAULT_AUTHENTICATION_CLASSES: [ rest_framework.authentication.SessionAuthentication, ], DEFAULT_PERMISSION_CLASSES: [ rest_framework.permissions.IsAuthenticated, # 未登录访问直接拒绝 ], }序列化器怎么把模型翻译成 JSON前端要的是 JSON你手里是 Python 对象中间需要翻译官它就是序列化器。最常见的写法是继承ModelSerializer用内部Meta类声明要处理哪个模型、放出哪些字段。写fields __all__全量输出想干净点就把字段名一个个列出来比如只留(id, name, age)。序列化器其实是双向的对象转 JSON 是序列化JSON 转回受校验的数据是反序列化。想加一条学生年龄必须年满 18 岁的业务规则加一个validate_age方法就行DRF 会自动调用它拦截非法输入。函数视图还是类视图DRF 写接口有两条路。函数式视图FBV是给函数挂上api_view装饰器查数据、套序列化器、返回Response代码完全自由适合需要特殊处理的接口。标准增删改查就别手写逻辑了继承ModelViewSet声明两个属性即可class StudentViewSet(ModelViewSet): queryset Student.objects.all() serializer_class StudentSerializer两行代码换回创建、列表、按 ID 获取、更新、删除的全套接口再建一个路由器注册 URL 就能访问。我的建议CRUD 接口一律用 ViewSet只有 ViewSet 装不下的定制需求才降级写函数视图。这是 DRF 自带的浏览器调试页登录后直接在页面上发请求、看返回开发期验证字段和数据非常方便。认证方案怎么选Session 还是 JWT浏览器场景下 Session 方案够用登录成功服务端存会话前端靠 Cookie 里的 sessionid 关联。但服务端必须保存用户状态横向扩容加机器时同步 session 很麻烦。JWT 就是为了解决这个痛点登录成功时服务端发一枚令牌内含用户 ID 和过期时间前端存本地每次请求放在请求头里带上。令牌由头部、载荷、签名三段组成签名用服务端密钥算出任何人篡改都会验签失败。用 PyJWT 生成和验证令牌只要几行import jwt from datetime import datetime, timedelta # 登录成功后签发有效期一天 payload {userid: user.id, exp: datetime.utcnow() timedelta(days1)} token jwt.encode(payload, SECRET_KEY, algorithmHS256)✅ 验证时用同一把密钥解码验签失败或过期就捕获异常返回 401前端收到 401 跳登录页。令牌有效期宁可短不可长重要操作建议二次验证。分页与过滤的常用配置列表接口必须分页否则数据一多前端直接卡死。在全局配置里把DEFAULT_PAGINATION_CLASS指到 PageNumber 分页器并设好PAGE_SIZE所有列表接口自动分页个别接口想换规则在视图类上声明pagination_class覆盖即可。前端需要按条件筛数据、按字段排序时装django-filter在视图的filter_backends里加上DjangoFilterBackend再用filterset_fields声明可筛选的字段。之后前端在查询串里写?majorCSorderingage就能用。 排序字段建议顺手在数据库加索引不然数据量上来后列表页会越来越慢。常见坑清单尾斜杠丢了DRF 路由习惯以斜杠结尾前端少写一个就是 404。把 PUT 当 PATCH 用PUT 要求前端给完整对象只改一个字段请用 PATCH。漏配权限类上线前逐个检查permission_classes接口不能裸奔。令牌有效期过长JWT 签发后没法主动作废有效期要短确实需要踢人下线就再加黑名单校验层。序列化全字段输出密码、手机号这类敏感字段不该进 API 响应显式裁剪掉。想继续深入去读项目里的 DRF 入门章节 和 DRF 进阶章节里面有完整的可运行投票项目接口文档怎么规范书写可以看 网络API接口设计。【免费下载链接】Python-100-DaysPython - 100天从新手到大师项目地址: https://gitcode.com/GitHub_Trending/py/Python-100-Days创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

2026/8/28 11:27:04

C#实现《大话西游》WDF资源解包与WAS图片转PNG全解析

简介:在游戏开发和资源逆向工程领域,文件格式解析与数据提取是基础且关键的技术环节。其核心原理在于理解二进制文件的结构定义,通过读取文件头、索引表和数据块,将封装在特定格式中的资源还原为通用格式。这项技术的价值在于能够…

2026/8/28 12:12:38

AI助手隐私与安全防护:从数据脱敏到安全接入实践

1. 背景:AI 助手越强大,隐私与安全越值得认真对待 最近在技术社区里,Instinct 这类 AI 助手产品讨论度很高。它能够根据用户的自然语言指令自动拆解任务、调用工具、检索资料,甚至在一定范围内自主完成多步操作。对于开发者来说&a…

2026/8/28 12:12:38

Open WebUI 本地 AI 对话平台:Ollama 与 OpenAI 接口 3 步接入

Open WebUI 本地 AI 对话平台:Ollama 与 OpenAI 接口 3 步接入 【免费下载链接】open-webui User-friendly AI Interface (Supports Ollama, OpenAI API, ...) 项目地址: https://gitcode.com/GitHub_Trending/op/open-webui Open WebUI 是一个自托管的 AI 对…

2026/8/28 12:12:38

Inkvoice开源发票系统:基于SQLite单文件的自托管实践解析

之前在做一些小型工作室的财务结算时,我一直在找一款足够轻量的发票管理工具。传统财务软件要么需要安装庞大的客户端,要么数据都放在云端,对本地数据敏感、强调自主可控的场景并不友好。后来接触到 Inkvoice 这个开源项目,它的思…

2026/8/28 12:07:37

JavaWeb银行账户系统:Spring Boot+MyBatis-Plus实战与事务安全设计

简介:企业级Web应用开发的核心在于构建稳定、安全且可维护的系统,这通常涉及对数据一致性、业务原子性和系统安全性的深刻理解。其基本原理是通过合理的架构设计和技术选型,确保在高并发场景下业务逻辑的正确执行,例如通过数据库事…

2026/8/26 9:13:28

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/27 10:58:22

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/27 7:46:21

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/28 0:00:34

2026学术工具专业测评|Paperxie全维度性能实测报告[特殊字符]

2026年国内高校毕业论文审核体系全面升级,重复率查重AIGC人工智能检测双检机制正式常态化落地,多所高校明确执行“双项一票否决”制度,重复率超标或AI生成痕迹不达标,均直接取消答辩资格。随着抽检力度加大、学术规范要求升级&…

2026/8/28 0:00:34

凭什么稳居论文工具顶流[特殊字符]Paperxie综合实力深度全解析

2026年论文双检内卷严重,市面上AI论文工具层出不穷,但大多只是单一功能凑数、模板化严重、双检高风险、套路收费。 在一众同质化工具里,Paperxie能长期稳居行业顶流、成为应届生公认毕业神器,从来不是靠营销,而是靠实…

2026/8/28 0:00:34

2026论文工具深度测评|为什么Paperxie是目前最稳的学术工具✅

2026高校论文查重AIGC双检严查常态化。 市面上绝大多数AI论文工具依旧存在明显短板:模板感重、AI痕迹超标、改写毁逻辑、收费套路多、查重不准、格式适配差。 在全网工具普遍“偏科”的现状下,Paperxie凭借全维度均衡实力脱颖而出,成为适配…

2026/8/26 19:34:06

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/26 19:17:08

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/28 11:06:45

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…