千家信息网

Django REST framework怎么使用

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,本篇文章给大家分享的是有关Django REST framework怎么使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。我们将使用 d
千家信息网最后更新 2025年12月01日Django REST framework怎么使用

本篇文章给大家分享的是有关Django REST framework怎么使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

我们将使用 django-rest 创建一个简单的API,以允许管理员用户查看和编辑系统中的user和group。

创建一个项目

创建一个名为tutorial的Django项目,然后启动一个名为quickstart的新应用程序,在你的电脑找到一个合适的位置执行这些命令。


mkdir tutorialcd tutorial
# Create a virtual environment to isolate our package dependencies locallypython3 -m venv envsource env/bin/activate # On Windows use `env\Scripts\activate`
# Install Django and Django REST framework into the virtual environmentpip install djangopip install djangorestframework
# Set up a new project with a single applicationdjango-admin startproject tutorial . # Note the trailing '.' charactercd tutorialdjango-admin startapp quickstartcd ..

项目目录结构是这样的


$ pwd/tutorial$ find .../manage.py./tutorial./tutorial/__init__.py./tutorial/quickstart./tutorial/quickstart/__init__.py./tutorial/quickstart/admin.py./tutorial/quickstart/apps.py./tutorial/quickstart/migrations./tutorial/quickstart/migrations/__init__.py./tutorial/quickstart/models.py./tutorial/quickstart/tests.py./tutorial/quickstart/views.py./tutorial/settings.py./tutorial/urls.py./tutorial/wsgi.py

应用程序是在项目目录中创建的,这可能看起来很不寻常。使用项目的名称空间可以避免与外部模块的名称冲突(这超出了快速入门的范围)。

现在先同步你的数据库:


python manage.py migrate

我们还将创建一个名为admin的初始用户,其密码为password123。稍后,我们将在示例中验证该用户。


python manage.py createsuperuser --email admin@example.com --username admin

一旦你建立了一个数据库,并创建了初始用户,准备开始,打开应用程序的目录。

Serializers

首先,我们将定义一些序列化器。让我们创建一个名为tutorial/quickstart/serializer .py的新模块,用于数据表示。serializers主要是验证前端传过来的数据是否正确,符合后端接口api接口的要求。开发中,不要相信前端传过来的任何数值,都要做字段的类型和是否合法校验。


from django.contrib.auth.models import User, Groupfrom rest_framework import serializers

class UserSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = User fields = ['url', 'username', 'email', 'groups']

class GroupSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = Group fields = ['url', 'name']

注意,我们在这里使用的是HyperlinkedModelSerializer的超链接关系。您也可以使用主键和其他各种关系,但是超链接是很好的RESTful设计。

Views

好的,我们最好写一些视图。打开tutorial/quickstart/views.py,开始输入。


from django.contrib.auth.models import User, Groupfrom rest_framework import viewsetsfrom tutorial.quickstart.serializers import UserSerializer, GroupSerializer

class UserViewSet(viewsets.ModelViewSet): """ API endpoint that allows users to be viewed or edited. """ queryset = User.objects.all().order_by('-date_joined') serializer_class = UserSerializer

class GroupViewSet(viewsets.ModelViewSet): """ API endpoint that allows groups to be viewed or edited. """ queryset = Group.objects.all() serializer_class = GroupSerializer

我们不是编写多个视图,而是将所有常见的行为分组到称为viewset的类中。

如果需要的话,我们可以很容易地将它们分解成单独的视图,但是使用viewset可以使视图逻辑组织良好,并且非常简洁。

Urls

下面,我们来连接API url。在tutorial/urls.py

from django.urls import include, pathfrom rest_framework import routersfrom tutorial.quickstart import views
router = routers.DefaultRouter()router.register(r'users', views.UserViewSet)router.register(r'groups', views.GroupViewSet)
# Wire up our API using automatic URL routing.# Additionally, we include login URLs for the browsable API.urlpatterns = [ path('', include(router.urls)), path('api-auth/', include('rest_framework.urls', namespace='rest_framework'))]

因为我们使用的是viewset而不是视图,所以我们可以为我们的API自动生成URL conf,只需将viewset注册到router类即可。

同样,如果我们需要对API URL有更多的控制,我们可以简单地使用常规的基于类的视图,并显式地编写URL conf。

最后,我们在browsable API中包含了默认的login和logout视图。这是可选的,但是如果您的API需要身份验证,并且希望使用browsable API,那么这是非常有用的。

Pagination

分页允许您控制每个页面返回多少对象。要启用它,请将以下行添加到tutorial/settings.py中


REST_FRAMEWORK = {    'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',    'PAGE_SIZE': 10}

Settings

在INSTALLED_APPS中添加'rest_framework'。设置模块将在tutorial/settings.py中

INSTALLED_APPS = [
...
'rest_framework',]

到这里,我们的接口代码部分就编写完成了,我们可以测试写的接口是否符合前端要求了。


python manage.py runserver

使用浏览器访问 【http://127.0.0.1:8000/users/】 ,用户名和密码是你之前创建的 admin password123 。

看到下面这个效果:


以上就是Django REST framework怎么使用,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

视图 用户 数据 项目 前端 应用程序 接口 更多 模块 目录 程序 应用 验证 名称 密码 数据库 知识 篇文章 这是 部分 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 吴爱芳网络技术服务 ssr暂无订阅服务器 服务器字符集和数据库字符集 网络安全服务提供商概念股 鹰企网络技术有限公司 数据库中计数的聚集函数 香港信保汇通互联网科技有限公司 web服务器搭建小程序 杭州中国移动网络安全宣传片 和平区信息网络技术诚信合作 设为家庭网络安全吗 网络安全防范宣传手册读后感 如何查看机房网络安全 合并地理数据库gis 一念逍遥如何回到原来的服务器 软件开发有没有国家二级 网络安全变相说法 数据库启用dll部件代码 力控科技与移动互联网 怎么用云服务器登陆亚马逊 网络安全报告机制 华为手机网络安全日是哪一天 电信软件开发项目 网络安全密码编码 我的世界一进去就有神器的服务器 mir4服务器断开显示104 打开数据库设置页面命令 数据库开发与设计 关系数据库中的数据完整性 不同行业的软件开发差异
0