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

注册网站免费注册邮箱苏州三石网络科技有限公司

注册网站免费注册邮箱,苏州三石网络科技有限公司,集团网页建设,以品牌推广为目的的广告网络平台什么是DRF#xff1f; DRF即Django REST framework的缩写#xff0c;官网上说#xff1a;Django REST framework是一个强大而灵活的工具包#xff0c;用于构建Web API。 简单来说#xff1a;通过DRF创建API后#xff0c;就可以通过HTTP请求来获取、创建、更新或删除数据(…什么是DRF DRF即Django REST framework的缩写官网上说Django REST framework是一个强大而灵活的工具包用于构建Web API。 简单来说通过DRF创建API后就可以通过HTTP请求来获取、创建、更新或删除数据(CRUD)。 那么为什么要构建API呢 在Django中我们通过model-view-template实现了后端和前端的通信。但前端未必是用Django的template实现的也可以用单独的前端框架如vue实现。这个时候就需要一种统一的方法在前后端通信。目前一种成熟的方法就是API。 那么什么是REST 如果你对DRF是用于构建Web API的说法已经满意了就可以跳过这段了。 那么什么是REST REST即 REpresentational State Transfer是一种风格用于在网络上的计算机系统之间提供标准使系统更容易相互通信。特点是无状态和分离客户端和服务器。 也就是说当你的API遵循了这种风格时就可以称为RESTful API。 关于如何设计出符合REST风格的API可以参考阮一峰的《RESTful API 设计指南》 那么用DRF实现的就是RESTful API吗其实DRF没有强制实现。 在官网的TOPICREST -- Hypermedia,Hateoas中有这样一段话 首先免责声明。“Django REST 框架”这个名字是在 2011 年初决定的选择它只是为了确保开发人员很容易找到这个项目。在整个文档中我们尝试使用更简单、技术上正确的术语“Web API”。 官网的一个例子 看一个官网的例子来感受一下。 创建一个简单的API允许管理员查看和编辑系统中的用户和组。 详细的过程推荐看官网https://www.django-rest-framework.org/tutorial/quickstart/ 配置项目 首先安装drf pip install djangorestframework 然后创建一个Django项目并创建应用 mkdir tutorial cd tutorialdjango-admin startproject tutorial . cd tutorial django-admin startapp quickstart这里创建项目和应用的方式有点不同按照他的这个就行。 在settings.py中的INSTALLED_APPS添加rest_framework INSTALLED_APPS [...rest_framework, ]同步数据库 python manage.py migrate 创建超级用户admin密码设置为password123 python manage.py createsuperuser --email adminexample.com --username admin 创建API 接下来就是重点我们要创建一个序列化程序将model转换成json格式。 1.创建序列化类 在quickstart应用下面创建serializers.py from django.contrib.auth.models import User, Group from rest_framework import serializersclass UserSerializer(serializers.HyperlinkedModelSerializer):class Meta:model Userfields [url, username, email, groups]class GroupSerializer(serializers.HyperlinkedModelSerializer):class Meta:model Groupfields [url, name]序列化类Serializer将Model转换为序列化的JSON对象。 上面构建了User和Group的序列化类。序列化类看起来和django的Form很像。 2.创建view 在quickstart/views.py中 from django.contrib.auth.models import User, Group from rest_framework import viewsets from rest_framework import permissions from tutorial.quickstart.serializers import UserSerializer, GroupSerializerclass UserViewSet(viewsets.ModelViewSet):API endpoint that allows users to be viewed or edited.queryset User.objects.all().order_by(-date_joined)serializer_class UserSerializerpermission_classes [permissions.IsAuthenticated]class GroupViewSet(viewsets.ModelViewSet):API endpoint that allows groups to be viewed or edited.queryset Group.objects.all()serializer_class GroupSerializerpermission_classes [permissions.IsAuthenticated]我们使用了ModelViewSet来快速构建一组view。由于背后实现了很多方法这看起来有些像魔法。 3.配置url 在tutorial/urls.py中: from django.urls import include, path from rest_framework import routers from tutorial.quickstart import viewsrouter routers.DefaultRouter() router.register(rusers, views.UserViewSet) router.register(rgroups, views.GroupViewSet)# 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, namespacerest_framework)) ]因为我们使用的是ViewSet而不是view所以我们可以通过简单地将ViewSet注册到Router来自动生成API的 URL conf。 可以发现和Django程序相比我们没有写template做前端的显示而是写了序列化类提供API。前端可以分离出来使用API来和后端通信。 图片来自一图看懂Django和DRF(https://zhuanlan.zhihu.com/p/53957464 测试API 使用浏览器访问网址 http://127.0.0.1:8000/users/ 由于设置了权限没登陆时查看不了。点击login用管理员账号adminpassword123登陆 可以看到JSON格式的数据。 也可以通过httpie工具可以用pip安装发送http请求获取数据 http -a admin:password123 http://127.0.0.1:8000/users/ 参考 DRF官网https://www.django-rest-framework.org/ https://www.django-rest-framework.org/topics/rest-hypermedia-hateoas/ 一图看懂Django和DRFhttps://zhuanlan.zhihu.com/p/53957464 一文彻底弄懂REST APIhttps://zhuanlan.zhihu.com/p/536437382 RESTful API 设计指南https://www.ruanyifeng.com/blog/2014/05/restful_api.html
http://www.dnsts.com.cn/news/146011.html

相关文章:

  • 临淄网站推广wordpress 4.9 zh cn
  • 视觉设计网站做网站架构需要什么步骤
  • 专注微商推广的网站泉州彩票网站建设
  • 长春建设局网站安卓app上架费用
  • 长沙网站推广平台广州统一企业官网建设
  • 程序员帮忙做放贷网站新网备案成功了怎么做网站
  • 做网站营业范围企业为什么要自助建站
  • 贵州省城乡住房和建设厅网站青白江区建设局网站
  • 中山网站建设中山犀牛云做网站费用
  • 商城网站建设推荐域名注册网站 不认证
  • 深圳注册公司需要哪些材料和流程资源seo网站优化排名
  • 网页制作与网站建设教程视频全网营销整合营销
  • 莱芜区网站网上服装设计培训班
  • 带引导页的网站404做的好的网站
  • 3d渲染网站建设wordpress代码下载
  • 民治营销型网站制作做游戏直播那个网站
  • 做IT的需要别人打开网站吗企业名录查询
  • 门户网站运营网站右下角代码
  • 襄阳地区网站做的好的网站 布局
  • 国内外基于vue框架的网站建设现状古香古色网站模板
  • 企业在网站建设上的不足做网站的电话号码
  • 网站建设金手指排名霸屏做销售找客户的网站
  • 甘肃建设厅执业资格注册中心网站狗贩子怎么做网站卖狗
  • 山东网站建设价格全球设计网优秀板式作品
  • 防火墙 网站做端口映射四大门户网站
  • 青岛网站建站公司网址转短链接
  • 记事本做网站如何排版南京做网站建设的公司排名
  • 物流怎么弄网站南宁做棋牌网站的公司
  • 惠州禅城网站建设新年电子贺卡免费制作软件app
  • 营销网站建设培训搭建网站挣钱