- 所需模块:
- 创建视图集和序列化器
所需模块:
- django:
pip install django
- crispy_forms:
pip install --upgrade django-crispy-forms
- django rest_framework:
pip install djangorestframework
- HTTPie:
pip install httpie
创建视图集和序列化器 【使用Django REST框架实现令牌认证】转到给定项目的用户文件夹,并创建一个api文件夹来保存所有api相关的文件
cd user &
&
mkdir api
现在, 使user/api/serializers.py和user/api/viewsets.py在api文件夹中
cd user/api &
&
touch serializers.py viewsets.py
文章图片
现在编辑user/api/serializers.py
from rest_framework import serializers
from django.contrib.auth.models import Userclass userSerializers(serializers.ModelSerializer):class Meta:
model = User
fields ='__all__'
也编辑user/api/viewsets.py
from rest_framework import viewsets
from .serializers import userSerializers
from django.contrib.auth.models import Userclass userviewsets(viewsets.ModelViewSet):
queryset = User.objects. all ()
serializer_class = userSerializers
编辑settings.py
加rest_framework和rest_framework.authtokeninINSTALLED_APPS在setting.py中
文章图片
如下编辑rest_framework设置
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication', ), 'DEFAULT_PERMISSION_CLASSES':(
'rest_framework.permissions.IsAuthenticated', ), }
文章图片
创建路由器
转到project/,并创建router.py
cd project/&
&
touch router.py
编辑项目/router.py,
from user.api.viewsets import userviewsets
from rest_framework import routersrouter = routers.DefaultRouter()
router.register( 'user' , userviewsets, base_name = 'user_api' )
编辑url.py
转到project/urls.py
并编辑
导入路由器和rest_framework.authtoken以进行令牌认证
from .router import router
from rest_framework.authtoken import views
添加与API相关的路径
path( 'api/' , include(router.urls)), path( 'api-token-auth/' , views.obtain_auth_token, name = 'api-tokn-auth' ),
文章图片
测试API
首先, 迁移模型
python manage.py migrate
使用以下命令启动服务器
python manage.py runserver
打开另一个终端, 让我们使用HTTP POST请求检查API以获取令牌, 然后粘贴用户名和密码。
http POST http://localhost:8081/api-token-auth/username='your_username' password="your_password"
文章图片
现在使用此令牌从API获取数据, 放置你的API令牌
http http://localhost:8081/api/user/"Authorization: Token API_KEY_HERE"
文章图片
首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。
推荐阅读
- ServiceNow面试体验NIT Rourkela(校园内)
- C++ STL中的array::crbegin()和array::crend()
- 数字和等于其所有素数的数字之和的数字
- Python使用Django进行表单验证项目示例
- Python Django-allauth设置和配置
- [L,R]范围内的数字计数,其中至少包含一个除以K的数字
- 从BST构建二叉树,使其遍历级别顺序可打印排序的数据
- 将二进制字符串拆分为0和1相等数量的子字符串
- win10变回win7图文详细教程图解