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

网站制作学校找哪家/有利于seo优化的是

网站制作学校找哪家,有利于seo优化的是,如何做防水网站,注册网址查询最近在参与的项目中需要使用到dajngo REST framework工具包进行开发,之前参与的项目几乎都是清一色的使用原生的django(话说偶尔也会使用一下Flask,真心不怎么喜欢这个框架),之前也有听说过这个工具包是如何的强大,奈何由于太(lan)忙(duo)的原因,一直没有好好去认真学习下,这回…

 

  最近在参与的项目中需要使用到dajngo REST framework工具包进行开发,之前参与的项目几乎都是清一色的使用原生的django(话说偶尔也会使用一下Flask,真心不怎么喜欢这个框架),之前也有听说过这个工具包是如何的强大,奈何由于太(lan)忙(duo)的原因,一直没有好好去认真学习下,这回也算是临时抱佛脚了.

Django rest framework介绍(纯属从其他博客粘贴复制过来的) 

Django REST framework is a powerful and flexible toolkit for building Web APIs.

Some reasons you might want to use REST framework:

  • The Web browsable API is a huge usability win for your developers.
  • Authentication policies including packages for OAuth1a and OAuth2.
  • Serialization that supports both ORM and non-ORM data sources.
  • Customizable all the way down - just use regular function-based views if you don't need the more powerful features.
  • Extensive documentation, and great community support.
  • Used and trusted by internationally recognised companies including Mozilla, Red Hat, Heroku, and Eventbrite.

中文:

Django REST framework 是用于构建Web API 的强大而灵活的工具包。

我们可能想使用REST框架的一些原因:

  • Web浏览API对于开发人员来说是一个巨大的可用性。
  • 认证策略包括OAuth1a和OAuth2的包。
  • 支持ORM和非ORM数据源的序列化。
  • 如果你不需要更强大的功能,就可以使用常规的基于功能的视图。
  • 广泛的文档和良好的社区支持。
  • 包括Mozilla、Red Hat、Heroku和Eventbrite在内的国际知名公司使用和信任。

 

开发环境配置  

  • python
  • pip install django
  • pip install djangorestframework
  • pip install markdown
  • pip install django-filter                                                                                    

 万恶的分割线=====================

学习方案(学习这个工具包的前提是你早已经熟练掌握使用django)

官方文档网址 http://www.django-rest-framework.org/

快速开发官方文档网址 http://www.django-rest-framework.org/tutorial/quickstart/

  • 序列化
  • 请求与响应
  • 基于视图的类
  • 授权与权限
  • 关系与超链接
  • 视图集与路由

一.序列化(序列化,个人理解就是按照开发者的的意愿获取/更新/创建模型字段值并进行序列处理)

  django基本的东西不再赘述

  示例项目目录基本结构(项目名称:Learning_drf/应用名称:api):

 1) 注册应用: 项目以及应用创建完毕后,进行基本的项目配置(路由配置,settings配置),必须将app和rest_framework组件进行应用注册.

   

  2)创建模型,生成迁移文件,执行迁移.

  3)在应用目录下创建serializers.py文件,创建方法及功能见下图:

 

 说明:序列化类首先定义了一些需要被序列化/反序列化的字段,你可以根据你的需要去选择处理那些字段的数据, create() 和 update() 方法定义了在调用 该序列化类对象的save()方法时是如何进行创建和修改实例化对象,这里对这两个方法的使用进行简单的说明:

 

# 视图函数中
from rest_framework.views import APIView  # 类视图中使用,集成自该类
from rest_framework.decorators import api_view # 方法视图中使用,是一个装饰器,直接装饰方法视图
from django.contrib.auth.decorators import login_required # 原生django自带的登录验证装饰器
from rest_framework import status
from rest_framework.response import Response # 直接可以将字典数据转换成json数据
from api.models import Snippet
from api.serializers import SnippetSerializer
from rest_framework.request import Request
from rest_framework import exceptions@api_view(['GET', 'POST', 'PUT', 'DELETE']) # 指明允许那些请求方式进行请求
@login_required
def api_list(request):""":param request::return: list all snippets or create a new snippet"""if request.method == 'GET':# 向数据库查询数据,得到查询集try:query_set = Snippet.objects.all()except Snippet.DoesNotExist:return Response(status=status.HTTP_417_EXPECTATION_FAILED)# 调用序列化类对象,返回进行了序列化的字段集合,使用serializers.data方式 获取数据serializers = SnippetSerializer(query_set, many=True)# 取出数据,向客户端进行返回,Response()会将数据转化为json数据. return Response(serializers.data, status=status.HTTP_200_OK)# 前端提交数据,调用模型,将其保存到数据库中elif request.method == 'POST':# 从request对象中取出数据,将其反序列化,返回反序列化的对象serializer = SnippetSerializer(data= request.data)# 如果反序列化的对象存在,就说明数据有效,将数据保存到数据库中if serializer.is_valid():# 调用save(), 从而调用序列化对象的create()方法,创建一条数据 serializer.save()return Response(serializer.data, status=status.HTTP_200_OK)return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)# 修改数据elif request.method == 'PUT':# 在rest framework 中 request对象是经过封装的id = request.query_params.get('id')try:query_set = Snippet.objects.get(id = id)except Snippet.DoesNotExist:return Response(status=status.HTTP_417_EXPECTATION_FAILED)serializer = SnippetSerializer(query_set,data=request.data)# 如果反序列化对象存在,就调用save()方法,从而调用update()方法 更新数据if serializer.is_valid():serializer.save()return Response(serializer.data, status=status.HTTP_200_OK)elif request.method == 'DELETE':id = request.query_params.get('id')try:query_set = Snippet.objects.get(id=id)except Snippet.DoesNotExist:return Response(status=status.HTTP_417_EXPECTATION_FAILED)# 如果需要删除数据,直接调用delete()即可以 query_set.delete()return Response(status=status.HTTP_204_NO_CONTENT)

<<<<<<<<<<<<<<<<<<<<<<万恶的分割线>>>>>>>>>>>>>>>>>>>>

二.路由,请求与响应

# 请求对象
# REST框架介绍了一个 请求(Request)对象,它扩展了常规的HttpResquest  ,
# 并且,提供更灵活的请求解析。请求(Request)对象的核心功能是 request.data属性,
# 这个属性与原生django的request.POST相似,但是它对Web APIs更加有用。
# request.POST 只处理表单数据。只对'POST'方法起作用。
# drf 的 request.data 可以处理任意数据。对'POST','PUT','PATCH'方法起作用。
# 使用 drf 获取GET请求的请求参数方式为 request.query_params 返回字典
# 响应对象 # REST框架也介绍了Response对象,它是一类用未渲染内容和内容协商来决定正确的内容类型并把它返回给客户端的模板响应(TemplateResponse) 。 # return Response(data) 根据客户端的请求来渲染成指定的内容类型# 状态码 # 总是在你的视图中用数字的HTTP状态码会更加容易理解,并且如果你用其他错误 # 代码表示错误,就不太容易注意到了。REST框架为每个状态码(status code)提供 # 更明确的标识符,例如在状态(status)模型中的 HTTP_400_BAD_REQUEST 就可以表实请求错误 (from rest_framework import status)# 装饰API视图 # REST框架提供两个装饰器,你可以用它们来写API视图。 # @api_view 装饰器用在基于视图的方法上。from rest_framework.decorators import api_view
# APIView 类用在基于视图的类上. from rest_framework.views import APIView
 
# 路由匹配
# 在匹配到应用的urls.py文件中,匹配方式如下:
from django.contrib import admin
from django.urls import path,includeurlpatterns = [path('admin/', admin.site.urls),path(r'api-auth/',include('rest_framework.urls', namespace='rest_framework')), path(r'api/', include('api.urls')), 路由到api 这个 app 的 urls.py
]# 在匹配到视图urls.py中,匹配方式如下:
from django.conf.urls import url
# 用来添加格式后缀模式
from rest_framework.urlpatterns import format_suffix_patternsfrom api.views import api_list,snippet_detail,UserDetail, UserListurlpatterns = [url(r'^snippet/$', api_list), url(r'^snippet/(?P<pk>[0-9]+)/$', snippet_detail),url(r'users/$', UserList.as_view()),url(r'users/(?P<pk>[0-9]+)/$', UserDetail.as_view() name="user_data"), 路由到视图中
]

 <<<<<<<<<<<<<<<<<<<<<<万恶的分割线>>>>>>>>>>>>>>>>>>>>

三.基于类的视图

from rest_framework.views import APIView # 类视图父类
from rest_framework import status # 状态码
from rest_framework.response import Response # 生成响应对象
from rest_framework import permissions # 进行访问用户的验证class ViewSet(APIView):# 进行用户有效性验证# permission_classes = [permissions.IsAuthenticated]# 允许任何用户进行访问该视图的接口,包括匿名用户, 在某些场景中, 必须设置验证用户的方式,否则会抛出异常permission_classes = [permissions.AllowAny]def get(self, request):return Response(status=status.HTTP_204_NO_CONTENT)def post(self, request):return Response(status=status.HTTP_204_NO_CONTENT)

 

转载于:https://www.cnblogs.com/lowmanisbusy/p/8969771.html

http://www.lbrq.cn/news/1237879.html

相关文章:

  • 做建材哪个网站平台好/百度大数据
  • java社交网站开发/网站收录查询爱站
  • 网站开发培训流程/网站建设费用明细表
  • wordpress导航仿制/安卓系统优化app
  • 广东省高水平建设专业网站/关键词指数查询工具
  • 企业年金的作用及意义/试分析网站推广和优化的原因
  • 网站建设需要多钱/网站流量分析
  • 互动网站欣赏/百度怎么投放自己的广告
  • 国内优秀设计网站/网站建设的推广渠道
  • 网站推广应该怎么做/什么叫口碑营销
  • 郑州制作网站的基本流程/长沙百度网站推广优化
  • 网站建设与app开发/企业查询系统官网
  • 建站之星好不/台州seo优化公司
  • 冀州建设局网站/百度推广计划
  • 网站源码下载地址是什么/焦作seo推广
  • 大连网站建设-中国互联/网络营销的推广方式都有哪些
  • 深圳市住房和建设局网站-%3e认租申请/手机管家一键优化
  • php开源企业网站/网上怎么免费推广
  • 里水网站开发/企业营销策划方案范文
  • 大型手游网络游戏排行榜前十/上海优化营商环境
  • 东莞做网站定制/预防电信网络诈骗
  • 网站搭建的/站长之家排名查询
  • 曰本真人性做爰相关网站/西安百度竞价外包
  • 西部网站域名出售/360推广怎么收费
  • 阿里云服务器网站备份/免费发广告的网站
  • 大理建设工程信息网站/百度分析
  • 中国开头的网站怎么做/临沂今日头条新闻最新
  • 北京建设银行卡信用卡网站/5151app是交友软件么
  • 网站建设主要内容/微信营销怎么做
  • wordpress分类显示博客/论述搜索引擎优化的具体措施
  • 【1】WPF界面开发入门—— 图书馆程序:登录界面设计
  • 基于图像识别与分类的中国蛇类识别系统
  • eSIM技术深度解析:从物理芯片到数字革命
  • 福彩双色球第2025088期篮球号码分析
  • 《软件测试与质量控制》实验报告一 测试用例设计
  • 力扣热题100---------206.反转链表