rest framework

博客提供了Django REST framework的官方文档链接,Django REST framework是与Django相关的技术,可助力后端开发。
官方文档:http://www.django-rest-framework.org/
### Django REST Framework 使用指南 Django REST Framework (DRF) 是一个用于构建 Web API 的强大工具,特别适合与 Django 结合使用。以下是关于 DRF 的基本使用方法及其示例。 #### 1. 安装与配置 要开始使用 DRF,首先需要安装它并将其集成到 Django 项目中: ```bash pip install djangorestframework ``` 在 `settings.py` 文件的 `INSTALLED_APPS` 中添加 `'rest_framework'`: ```python INSTALLED_APPS = [ ... 'rest_framework', ] ``` 为了支持浏览器可浏览的 API 页面,在根路由文件 (`urls.py`) 中加入以下内容[^2]: ```python from django.urls import path, include urlpatterns = [ ... path('api-auth/', include('rest_framework.urls', namespace='rest_framework')), ] ``` --- #### 2. 创建简单的 API 接口 ##### a. 模型定义 假设我们有一个简单的博客应用,其中包含一篇帖子的数据模型: ```python # models.py from django.db import models class Post(models.Model): title = models.CharField(max_length=100) content = models.TextField() created_at = models.DateTimeField(auto_now_add=True) def __str__(self): return self.title ``` 运行迁移命令以创建数据库表结构: ```bash python manage.py makemigrations python manage.py migrate ``` --- ##### b. 序列化器 序列化器负责将复杂的 Python 对象转换为 JSON 数据格式以便传输给客户端。下面是一个基于上面模型的简单序列化器: ```python # serializers.py from rest_framework import serializers from .models import Post class PostSerializer(serializers.ModelSerializer): class Meta: model = Post fields = ['id', 'title', 'content', 'created_at'] ``` --- ##### c. 视图函数 可以通过多种方式实现视图逻辑,这里提供两种常见的方法:函数式视图和类视图。 ###### 函数式视图 这是最基础的方式之一: ```python # views.py from rest_framework.decorators import api_view from rest_framework.response import Response from .models import Post from .serializers import PostSerializer @api_view(['GET']) def post_list(request): posts = Post.objects.all() serializer = PostSerializer(posts, many=True) return Response(serializer.data) ``` ###### 类视图(推荐) 更灵活且易于扩展的是使用通用视图或 ViewSet 来编写接口: ```python # views.py from rest_framework.generics import ListCreateAPIView from .models import Post from .serializers import PostSerializer class PostList(ListCreateAPIView): queryset = Post.objects.all() serializer_class = PostSerializer ``` --- ##### d. 路由设置 为了让 URL 映射到相应的视图,可以在 `urls.py` 中这样写: ```python # urls.py from django.urls import path from .views import PostList urlpatterns = [ path('posts/', PostList.as_view(), name='post-list'), ] ``` 或者对于更高级的功能,比如自动化的路由管理,可以利用 Router 功能: ```python # urls.py from django.urls import include, path from rest_framework.routers import DefaultRouter from .views import PostViewSet router = DefaultRouter() router.register(r'posts', PostViewSet) urlpatterns = [ path('', include(router.urls)), ] ``` --- #### 3. 认证、权限与限流 安全性是任何 API 开发的重要部分。DRF 提供了丰富的内置机制来处理这些问题[^4]。 ##### a. 配置全局默认行为 可以在 `settings.py` 中指定整个项目的认证策略和其他安全措施: ```python REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework.authentication.TokenAuthentication', 'rest_framework.authentication.SessionAuthentication', ), 'DEFAULT_PERMISSION_CLASSES': ( 'rest_framework.permissions.IsAuthenticated', ), } ``` ##### b. 局部覆盖 如果某些特定视图需要不同的规则,则可以直接在其内部重新声明这些属性: ```python class SpecialPostView(APIView): authentication_classes = [TokenAuthentication] permission_classes = [IsAdminUser] def get(self, request): # 实现具体业务逻辑... pass ``` --- #### 4. 测试 API 完成以上步骤之后,启动服务器并通过浏览器或其他 HTTP 工具测试新建立的 API 端点。 ```bash python manage.py runserver ``` 访问地址 http://localhost:8000/posts/ 即可查看所有帖子列表。 --- ### 总结 本指南介绍了如何快速上手 Django REST Framework 进行 API 开发的过程,涵盖了从环境准备到实际编码再到部署前的一些最佳实践建议。希望这能帮助开发者更快地熟悉该框架的核心特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值