愚公系列2022年04月 Python教学课程 63-DRF框架安装与配置

网友投稿 569 2022-05-30

前言

Django REST框架是一个强大而灵活的工具包,用于构建Web API。

您可能希望使用 REST 框架的一些原因:

Web 可浏览 API 对您的开发人员来说是一个巨大的可用性胜利。

身份验证策略,包括 OAuth1a 和 OAuth2 的程序包。

同时支持 ORM 和非 ORM 数据源的序列化。

可一直向下自定义 - 如果您不需要更强大 的功能,只需使用常规的基于函数的视图即可。

广泛的文档和强大的社区支持。

被国际知名公司使用和信任,包括Mozilla,Red Hat,Heroku和Eventbrite。

一、环境安装与配置

REST 框架需要满足以下条件:

Python (3.6, 3.7, 3.8, 3.9, 3.10)

Django (2.2, 3.0, 3.1, 3.2, 4.0)

我们强烈推荐并仅正式支持每个Python和Django系列的最新补丁版本。

以下软件包是可选的:

PyYAML, uritemplate (5.1+, 3.0.0+) - 架构生成支持。

Markdown (3.0.0+) - 对可浏览 API 的 Markdown 支持。

【愚公系列】2022年04月 Python教学课程 63-DRF框架安装与配置

Pygments (2.4.0+) - 为 Markdown 处理添加语法突出显示。

django-filter (1.0.1+) - 过滤支持。

django-guardian (1.1.1+) - 对象级权限支持。

二、安装

安装使用 ,包括所需的任何可选包…pip

pip install djangorestframework pip install markdown # Markdown support for the browsable API. pip install django-filter # Filtering support

或从 github 克隆项目:git clone https://github.com/encode/django-rest-framework

我们利用在Django框架学习中创建的demo工程,在settings.py的INSTALLED_APPS中添加’rest_framework’。

INSTALLED_APPS = [ ... 'rest_framework', ]

如果您打算使用可浏览的API,您可能还需要添加REST框架的登录和注销视图。将以下内容添加到根文件中。urls.py

urlpatterns = [ ... path('api-auth/', include('rest_framework.urls')) ]

请注意,URL 路径可以是您想要的任何路径。

三、案例

1.settings.py配置

INSTALLED_APPS = [ ... 'rest_framework', ] REST_FRAMEWORK = { # Use Django's standard `django.contrib.auth` permissions, # or allow read-only access for unauthenticated users. 'DEFAULT_PERMISSION_CLASSES': [ 'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly' ] }

2.urls.py使用

from django.urls import path, include from django.contrib.auth.models import User from rest_framework import routers, serializers, viewsets # Serializers define the API representation. class UserSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = User fields = ['url', 'username', 'email', 'is_staff'] # ViewSets define the view behavior. class UserViewSet(viewsets.ModelViewSet): queryset = User.objects.all() serializer_class = UserSerializer # Routers provide an easy way of automatically determining the URL conf. router = routers.DefaultRouter() router.register(r'users', UserViewSet) # 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')) ]

5G教育 Python

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:postman系列之入门指南和常用技巧整理
下一篇:header中Content-Disposition的作用
相关文章