尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
4 步跑通你的第一个 Python RESTful 接口
4 步跑通你的第一个 Python RESTful 接口【免费下载链接】Python-100-DaysPython - 100天从新手到大师项目地址: https://gitcode.com/GitHub_Trending/py/Python-100-Days产品的一句话需求博客要加评论功能。前端已经分离后端只需要提供两个 Python RESTful 接口——拉取评论列表、提交评论。跟着 Python-100-Days 项目 Day46-60 的实战路径我们用 Django REST FrameworkDRF四步做完一个前端能直接用的评论接口。为什么不写getComments、addComment这种网址因为只要约定好“资源用 URI 表示、操作用 HTTP 动词表示”前后端对齐一次约定之后所有接口都能复用这套规则。项目里的DRF 入门讲透了这套约定这里直接上手。从零跑通第一个接口先装 DRF并在 Django 配置里声明它pip install djangorestframeworkINSTALLED_APPS [ ... # 其他应用 rest_framework, ]第一步设计请求路径把“评论”当成资源名列表放/comments/单条放/comments/{id}/操作交给动词区分路径里不放动词。方法路径说明GET/comments/拉取评论列表带分页POST/comments/提交一条新评论DELETE/comments/{id}/删除指定 id 的评论第二步给模型做字段映射模型就四个字段真正要拍板的是暴露哪些给前端——article关联对象太臃肿改传article_id前端要标题时自己去查。模型字段JSON 字段是否必填idid否服务端自动生成article外键article_id是nicknamenickname是contentcontent是pub_datepub_date否服务端自动生成写好序列化器DRF 会自动完成“模型实例 ↔ JSON”的双向转换和入参校验class CommentSerializer(serializers.ModelSerializer): class Meta: model Comment fields (id, article_id, nickname, content, pub_date)生产环境里别图省事写fields __all__全量暴露等于把数据库表结构交给前端看。第三步写第一版视图想代码最少就继承ModelViewSet只声明两件事数据从哪取、谁来序列化。列表、详情、创建、更新、删除五个动作父类都已经写好了。class CommentView(ModelViewSet): queryset Comment.objects.all() serializer_class CommentSerializerfrom rest_framework.routers import DefaultRouter router DefaultRouter() router.register(comments, CommentView) urlpatterns router.urlsDefaultRouter会替你把列表和详情两条路由都生成出来。启动服务浏览器直接打开/comments/能看到 DRF 自带的接口页面直接发请求、查看返回的 JSON还能看到哪些字段必填。第四步挡住不合法的输入⚠️ 第一版必然被“欺负”昵称传空串、评论塞一万字数据库照单全收。在序列化器里加两个validate方法挡住它们。def validate_nickname(self, value): if not value.strip(): raise serializers.ValidationError(昵称不能为空) return value def validate_content(self, value): if len(value) 1000: raise serializers.ValidationError(正文最多1000字) return value校验不通过时 DRF 统一返回 400 和 JSON 错误列表前端判断状态码后展示提示即可不用自己写异常处理。看懂 JWT给接口上锁评论不该匿名提交。HTTP 是无状态的服务器不记得上一个请求是谁发的所以通行做法是让客户端每次请求都携带身份令牌——JWT。流程三步走签发登录成功后服务器把用户 ID 和过期时间写进载荷用密钥算出签名携带前端把令牌存下来每次请求头带上Authorization: Bearer token校验服务器用同一把密钥验签失败或过期就返回 401。签名是对前两部分加密钥算出的指纹中间改一个字符指纹就对不上这就是它难被伪造的原因。签发和校验的核心各只有几行代码用 PyJWTpip install pyjwtimport jwt from datetime import datetime, timedelta def issue_token(user): payload { userid: user.id, exp: datetime.utcnow() timedelta(days1), } return jwt.encode(payload, SECRET_KEY, algorithmHS256)def verify_token(token): try: return jwt.decode(token, SECRET_KEY, algorithms[HS256]) except (jwt.ExpiredSignatureError, jwt.InvalidTokenError): return None # 过期或被篡改一律按未登录处理服务器只验证、不存状态以后加机器扩容也不用同步会话数据。把接口交付给前端接口写完别只甩一句“自己调”。每个接口交一页契约URL、方法、请求字段表、一份真实响应示例错误码说明也别漏前端异常处理才不会靠猜。文档统一维护推荐 RAP2、YAPI 这类工具项目的网络 API 接口设计里有完整示例。DRF 开启分页后列表返回是固定形状前端只需要对齐这一套结构{ count: 35, next: http://api.example.com/comments/?page2, previous: null, results: [ { id: 1, article_id: 7, nickname: 王大锤, content: 写得好, pub_date: 2024-05-01T10:00:00Z } ] }错误响应统一成“400 带字段错误列表、401 未登录、404 资源不存在”前端判断一次就能到处复用。跑通之后可以做的三件事接口迭代多了就先做版本管理路径里加/v1/、/v2/新旧版本互不影响。担心高频刷接口就启用 DRF 自带的限流按用户和 IP 分别设阈值。评论通知、统计这类耗时操作可以接 Celery 异步执行这四步的完整工程见项目 Day54-55代码都在。【免费下载链接】Python-100-DaysPython - 100天从新手到大师项目地址: https://gitcode.com/GitHub_Trending/py/Python-100-Days创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

YOLO石油泄露检测数据集实战:从数据解析到模型训练调优全指南

YOLO石油泄露检测数据集实战:从数据解析到模型训练调优全指南

简介:目标检测是计算机视觉的核心任务之一,旨在识别图像中特定目标的位置与类别。其原理通常基于深度学习模型,通过卷积神经网络提取特征,并回归目标的边界框与类别概率。这项技术在工业安全、环境监测等领域具有重要价值&#xf…

📅 2026/11/13 11:34:03
Claude Code 安装:一条命令装好,10 秒验证跑通

Claude Code 安装:一条命令装好,10 秒验证跑通

Claude Code 安装:一条命令装好,10 秒验证跑通 【免费下载链接】claude-code Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining com…

📅 2026/10/9 0:16:39
Open WebUI 交互设计指南:5个让你用着顺手的界面细节

Open WebUI 交互设计指南:5个让你用着顺手的界面细节

Open WebUI 交互设计指南:5个让你用着顺手的界面细节 【免费下载链接】open-webui User-friendly AI Interface (Supports Ollama, OpenAI API, ...) 项目地址: https://gitcode.com/GitHub_Trending/op/open-webui Open WebUI 是一款自托管的 AI 聊天界面&a…

📅 2026/10/8 2:45:23
MORE NEWS

更多资讯

📰

你在外省考的电工证能转过来吗?保姆级教程教你审电工证到哪里

你在外省考的电工证能转过来吗?保姆级教程教你审电工证到哪里 之前考的证在外省能不能转过来?你不是一个人,这是很多在外地打工、想回家乡发展、或者想转行做电工的人共同的疑问。尤其是像你这样已经在外地工作几年,手里有一张电工证,但不知道能不能“带…

📰

高压电工证哪些岗位报考条件与考试时间保姆级教程

高压电工证哪些岗位报考条件与考试时间保姆级教程 急需特种作业证才能上岗找工作,别再被黑中介忽悠了,高压电工证哪些岗位最吃香?你要是还在犹豫要不要考,那这篇保姆级教程你得看完。驻马店的公路工程从业者,很多人因为没证被拒之门外,而高压电工证正是…

📰

吴川市在哪考电工证,学历不高也能报?郑州报考避坑指南

吴川市在哪考电工证,学历不高也能报?郑州报考避坑指南 学历不高怕报不上名?别担心,吴川市考电工证其实门槛没你想的那么高。不管是初中、高中还是大专学历,只要你符合年龄要求,具备一定的电工基础知识,都可以报考低压或高压电工证。不过,很多人在报考…

📰

佛冈县电工证怎么考 内部消息告诉你怎么一次过

佛冈县电工证怎么考 内部消息告诉你怎么一次过 你是不是正为【佛冈县电工证怎么考】发愁?别急,我现在就告诉你内部消息,别再走弯路了。 如果你正在找电工相关工作,或是已经上班了但没有证,那你现在面临的首要问题就是:…

📰

福州高压低压电工证千万别踩坑:证书过期了不知道怎么复审延期

福州高压低压电工证千万别踩坑:证书过期了不知道怎么复审延期 证书过期了不知道怎么复审延期,这种事儿不少电工师傅都遇到过,一不留神就错过了补办时间,影响了工作,甚至丢了饭碗。特别是【福州高压低压电工证】,不仅关系到个人执业资格,还直接关联到施…

📰

电工证用报机构吗?实操考试心里没底怕挂科,多少钱才算合理?

电工证用报机构吗?实操考试心里没底怕挂科,多少钱才算合理? 实操考试心里没底怕挂科,电工证到底要不要报机构?很多人在报考电工证时都会纠结这个问题,尤其是在面对“多少钱”这个现实问题时,更是左右为难。电工证作为从事电力相关工作的“通行证”,其…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬