学习来源
网易云课堂:python全栈工程师微专业:Django章节的API内容
课程目标
- 了解REST的含义
- 用户登录和退出
- 用户注册
1.REST
1.1 概念介绍
2.用户权限的API
2.1使用第三方应用django-rest-auth
2.1.1 django-rest-auth简介
- RESTful的API
- 基于django-rest-framework
- 功能:用户注册、登录、退出、密码修改和重置、第三方登录
2.1.2 安装与配置
pip install django-rest-auth
进入blog/settings.py文件配置INSTALLED_APPS
进入blog/settings.py文件配置csrf_token
进入siteusers/urls.py文件配置登录、退出的路由
迁移数据
python manage.py migrate
2.1.3使用postman测试用户登录的api
api接口:POST http://127.0.0.1:8000/api/v1/rest-auth/login/
使用post请求方式,对该api接口进行登录,需要在Body里提交username及password(本次提交以raw的JSON格式),登录成功会返回key(即csrf_token)
2.1.4使用postman测试用户退出的api
api接口:POST http://127.0.0.1:8000/api/v1/rest-auth/logout/
使用post请求方式,进行用户退出,需要在Body里提交相应的username(本次提交以form-data方式),退出成功会返回"Successfully logged out."
2.2用户注册
2.2.1安装与配置
pip install django-allauth
进入blog/settings.py文件配置INSTALLED_APPS
进入siteusers/urls.py文件配置用户注册的路由
迁移数据
python manage.py migrate
2.2.2使用postman测试用户注册的api
api接口:POST http://127.0.0.1:8000/api/v1/rest-auth/registration/
使用post请求方式,进行用户注册,需要在Body里提交相应username,password1,password2,email(本次提交以raw的JSON格式),注册成功会返回key(即csrf_token)
2.2.3权限问题解决
在用户注册后,重新使用获得用户列表的api进行获取时,出现了权限被拒的问题,原因是由于之前设置了csrf_token
未解决该权限问题,因此需要使用用户登录的api获得其返回的key(即csrf_token),并配置在整个测试项目(在该测试项目右键点击Edit后弹出的窗口)的Authorization
需要注意的是,每次项目重新运行后,csrf_token都会变化,因此需要重新进行登录操作获得新的key后进行更新