新的一年启程,大家又投入到紧张的学习和工作中,作为一个互联网人必须时刻紧跟科技发展的脚步。对于大火的 Python 编程语言我们怎么能错过,我们【51Reboot】这就为大家带来新年的第一堂 Python 免费公开课。

主题:Django Rest Framework

大纲

  • Django-rest-framework是什么?
  • 序列化
  • 请求和响应
  • 类视图
  • 认证
  • 权限

主讲师:Monkey

  • 3 年 Python 语言开发经验
  • 从事自动化运维相关工作
  • Python & Gopher 热衷粉
    ##视频版

链接:https://pan.baidu.com/s/1elpgOu 密码:xi3d

Django rest framework 是什么?

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

特点:

  • Web 浏览器 API
  • 身份认证策略及权限
  • 序列化
  • 函数视图及类视图
  • 统一的异常处理
  • 自动生成 API 文档信息
  • 文档和良好的社区支持
  • .......

要求

Python (2.7, 3.2, 3.3, 3.4, 3.5, 3.6)

Django (1.10, 1.11, 2.0)

Web 浏览器 API

使用场景

前后端分离

序列化

  • serializers.Serializer
  • serializers.ModelSerializer
  • serializers.HyperlinkedModelSerializer

请求

  • request.POST
    Only handles form data. Only works for 'POST' method.
  • request.data

    Handles arbitrary data. Works for 'POST', 'PUT' and 'PATCH' methods.

    响应

  • Response
    
    data: 响应的序列化数据。

status:响应的状态码。默认为200.另请参阅状态代码

......


* status

HTTP_200_OK
HTTP_403_FORBIDDEN
HTTP_404_NOT_FOUND
HTTP_500_INTERNAL_SERVER_ERROR
......

## 类视图

class-based-views

* APIView
* mixins
* generics

## 认证

* 查询 Token

curl -X post http://127.0.0.1/api-token-auth/ -d username=monkey -d password=monkey123

* Token 登录认证

authentication_classes = (TokenAuthentication, )

## 权限

权限列表

* AllowAny
* IsAdminUser
* IsAuthenticated
* IsAuthenticatedOrReadOnly
* DjangoMOdelPermissions
* DjangoModelPermissionsOrAnonReadOnly
* DjangoObjectPermissions

权限认证

permission_classes = (IsAuthenticated,)


## 验证权限

curl http://127.0.0.1/accounts/ -H 'Authorization: Token 48386f45403c308ba1b2575c546f498c5580efed'


## 学习资料

官方网站

www.django-rest-framework.org/ (http://www.django-rest-framework.org/)