前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【愚公系列】2022年04月 Python教学课程 63-DRF框架安装与配置

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

作者头像
愚公搬代码
发布2022-04-14 15:31:58
8980
发布2022-04-14 15:31:58
举报
文章被收录于专栏:历史专栏

文章目录

前言

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 支持。
  • Pygments (2.4.0+) - 为 Markdown 处理添加语法突出显示。
  • django-filter (1.0.1+) - 过滤支持。
  • django-guardian (1.1.1+) - 对象级权限支持。

二、安装

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

代码语言:javascript
复制
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’。

代码语言:javascript
复制
INSTALLED_APPS = [
    ...
    'rest_framework',
]

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

代码语言:javascript
复制
urlpatterns = [
    ...
    path('api-auth/', include('rest_framework.urls'))
]

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

三、案例

1.settings.py配置

代码语言:javascript
复制
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使用

代码语言:javascript
复制
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'))
]
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/04/14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 前言
  • 一、环境安装与配置
  • 二、安装
  • 三、案例
    • 1.settings.py配置
      • 2.urls.py使用
      相关产品与服务
      多因子身份认证
      多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档