当前位置: 首页 > news >正文

Django - DRF

在这里插入图片描述


文章目录

    • 关于 DRF


关于 DRF

DRF : Django REST framework
DRF 是一个建立在Django基础之上的Web 应用开发框架,可以快速的开发REST API接口应用。
在REST framework中,提供了序列化器Serialzier的定义,可以帮助我们简化序列化与反序列化的过程,不仅如此,还提供丰富的类视图、扩展类、视图集来简化视图的编写工作。
REST framework还提供了认证、权限、限流、过滤、分页、接口文档等功能支持。
REST framework提供了一个API 的Web可视化界面来方便查看测试接口。

  • 官网:https://www.django-rest-framework.org
  • github : https://github.com/encode/django-rest-framework

pip install djangorestframework

1、接着上文,我们在 ddemo/settings.pyINSTALLED_APPS 添加 rest_framework app;添加 REST_FRAMEWORK

INSTALLED_APPS = ['django.contrib.admin',...'hello','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、编辑 ddemo/urls.py

from django.contrib.auth.models import User
from django.urls import include, path
from rest_framework import routers, serializers, viewsets# Serializers define the API representation.
class UserSerializer(serializers.HyperlinkedModelSerializer):class Meta:model = Userfields = ['url', 'username', 'email', 'is_staff']# ViewSets define the view behavior.
class UserViewSet(viewsets.ModelViewSet):queryset = User.objects.all()serializer_class = UserSerializer# Routers provide a 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')),
]

3、创建用户

python manage.py createsuperuser

这里我添加用户名为 xx,密码为 1234;后面将会用到


你也可以通过这种方式创建用户:

python manage.py createsuperuser --email admin@example.com --username admin

4、运行

python manage.py runserver

5、测试 请求

curl -H 'Accept: application/json; indent=4' -u xx:1234 http://127.0.0.1:8000/users/
http -a admin:password123 http://127.0.0.1:8000/users/

得到:

[{"url": "http://127.0.0.1:8000/users/1/","username": "xx","email": "1625608596@qq.com","is_staff": true}
]

创建新用户,名为 new,邮箱为 new@example.com

curl -X POST -d username=new -d email=new@example.com -d is_staff=false -H 'Accept: application/json; indent=4' -u xx:1234 http://127.0.0.1:8000/users/

返回:

{"url": "http://127.0.0.1:8000/users/2/","username": "new","email": "new@example.com","is_staff": false,
}

http://www.dtcms.com/a/414405.html

相关文章:

  • Python全方位处理XML指南:解析、修改与重写实战
  • LabVIEW实现B样条曲线拟合
  • 门户网站系统建设招标文件中国建设教育协会网站培训中心
  • 常熟网站网站建设在线教育自助网站建设平台
  • 【Linux】深入探索多线程编程:从互斥锁到高性能线程池实战
  • 广州手机网站建设报价沧州市政务服务大厅
  • .net网站开发程序员深圳专业网站建设公司
  • DedeCMS命令执行复现研究 | CVE-2025-6335
  • BJDCTF2020
  • LeetCode:239. 滑动窗口最大值
  • 文件上传漏洞(二)iis6.0 CGI漏洞
  • PHP的json_encode()函数了解
  • LeetCode:76.数据流的中位数
  • 瑞达恒建筑网站网站设计技术大全
  • 32.Linux NFS 服务
  • ubuntu?centos?还是 redhat?Linux 系统选哪个?
  • Rich库演示教程
  • 买网站西安关键词优化平台
  • 构建质量的堡垒:一文读懂单元测试、集成测试、系统测试与回归测试
  • 深入MySQL、JVM与Maven核心原理​
  • MySQL中的数据去重,该用DISTINCT还是GROUP BY?
  • 低空物流自动驾驶机器人
  • 自动驾驶中的传感器技术54——USS(0)
  • 使用虚幻引擎(UE5)打造黑夜场景氛围
  • 嵌入式学习笔记3.基于寄存器方式控制GPIO
  • 自动驾驶中的传感器技术53——Radar(14)
  • 杭州网站推广技巧十大跨境电商公司
  • Boost电路项目实战:从原理到实战全解析(含电流环电压环)
  • a-input输入框,苹果电脑(MAC)输入法的输入Bug
  • C# TCP - 串口转发1.0