<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      django restframework框架六 解析器

      @(python之路)[django restframework框架六 解析器]
      django restframework框架六 解析器

      解析器簡介

      ?根據請求頭 content-type 選擇對應的解析器就請求體內容進行處理。

      解析器組件

      a. 僅處理請求頭content-type為application/json的請求體
      urls.py

      from django.conf.urls import url, include
      from web.views.s5_parser import TestView
      
      urlpatterns = [
          url(r'test/', TestView.as_view(), name='test'),
      ]
      

      views.py

      #!/usr/bin/env python
      # -*- coding:utf-8 -*-
      from rest_framework.views import APIView
      from rest_framework.response import Response
      from rest_framework.request import Request
      from rest_framework.parsers import JSONParser
      
      
      class TestView(APIView):
          parser_classes = [JSONParser, ]
      
          def post(self, request, *args, **kwargs):
              print(request.content_type)
      
              # 獲取請求的值,并使用對應的JSONParser進行處理
              print(request.data)
      
              # application/x-www-form-urlencoded 或 multipart/form-data時,request.POST中才有值
              print(request.POST)
              print(request.FILES)
      
              return Response('POST請求,響應內容')
      
          def put(self, request, *args, **kwargs):
              return Response('PUT請求,響應內容')
      

      b. 僅處理請求頭content-type為application/x-www-form-urlencoded 的請求體
      urls.py

      from django.conf.urls import url, include
      from web.views import TestView
      
      urlpatterns = [
          url(r'test/', TestView.as_view(), name='test'),
      ]
      

      views.py

      #!/usr/bin/env python
      # -*- coding:utf-8 -*-
      from rest_framework.views import APIView
      from rest_framework.response import Response
      from rest_framework.request import Request
      from rest_framework.parsers import FormParser
      
      
      class TestView(APIView):
          parser_classes = [FormParser, ]
      
          def post(self, request, *args, **kwargs):
              print(request.content_type)
      
              # 獲取請求的值,并使用對應的JSONParser進行處理
              print(request.data)
      
              # application/x-www-form-urlencoded 或 multipart/form-data時,request.POST中才有值
              print(request.POST)
              print(request.FILES)
      
              return Response('POST請求,響應內容')
      
          def put(self, request, *args, **kwargs):
              return Response('PUT請求,響應內容')
      
      

      c. 僅處理請求頭content-type為multipart/form-data的請求體
      urls.py

      from django.conf.urls import url, include
      from web.views import TestView
      
      urlpatterns = [
          url(r'test/', TestView.as_view(), name='test'),
      ]
      

      views.py

      #!/usr/bin/env python
      # -*- coding:utf-8 -*-
      from rest_framework.views import APIView
      from rest_framework.response import Response
      from rest_framework.request import Request
      from rest_framework.parsers import MultiPartParser
      
      
      class TestView(APIView):
          parser_classes = [MultiPartParser, ]
      
          def post(self, request, *args, **kwargs):
              print(request.content_type)
      
              # 獲取請求的值,并使用對應的JSONParser進行處理
              print(request.data)
              # application/x-www-form-urlencoded 或 multipart/form-data時,request.POST中才有值
              print(request.POST)
              print(request.FILES)
              return Response('POST請求,響應內容')
      
          def put(self, request, *args, **kwargs):
              return Response('PUT請求,響應內容')
      

      upload.html

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
      </head>
      <body>
      <form action="http://127.0.0.1:8000/test/" method="post" enctype="multipart/form-data">
          <input type="text" name="user" />
          <input type="file" name="img">
      
          <input type="submit" value="提交">
      
      </form>
      </body>
      </html>
      

      d.傳文件
      urls.py

      from django.conf.urls import url, include
      from web.views import TestView
      
      urlpatterns = [
          url(r'test/(?P<filename>[^/]+)', TestView.as_view(), name='test'),
      ]
      

      views.py

      #!/usr/bin/env python
      # -*- coding:utf-8 -*-
      from rest_framework.views import APIView
      from rest_framework.response import Response
      from rest_framework.request import Request
      from rest_framework.parsers import FileUploadParser
      
      
      class TestView(APIView):
          parser_classes = [FileUploadParser, ]
      
          def post(self, request, filename, *args, **kwargs):
              print(filename)
              print(request.content_type)
      
              # 獲取請求的值,并使用對應的JSONParser進行處理
              print(request.data)
              # application/x-www-form-urlencoded 或 multipart/form-data時,request.POST中才有值
              print(request.POST)
              print(request.FILES)
              return Response('POST請求,響應內容')
      
          def put(self, request, *args, **kwargs):
              return Response('PUT請求,響應內容')
      
      

      upload.html

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
      </head>
      <body>
      <form action="http://127.0.0.1:8000/test/f1.numbers" method="post" enctype="multipart/form-data">
          <input type="text" name="user" />
          <input type="file" name="img">
      
          <input type="submit" value="提交">
      
      </form>
      </body>
      </html>
      

      e. 同時多個Parser
      ?當同時使用多個parser時,rest framework會根據請求頭content-type自動進行比對,并使用對應parser
      urls.py

      from django.conf.urls import url, include
      from web.views import TestView
      
      urlpatterns = [
          url(r'test/', TestView.as_view(), name='test'),
      ]
      

      views.py

      #!/usr/bin/env python
      # -*- coding:utf-8 -*-
      from rest_framework.views import APIView
      from rest_framework.response import Response
      from rest_framework.request import Request
      from rest_framework.parsers import JSONParser, FormParser, MultiPartParser
      
      
      class TestView(APIView):
          parser_classes = [JSONParser, FormParser, MultiPartParser, ]
      
          def post(self, request, *args, **kwargs):
              print(request.content_type)
      
              # 獲取請求的值,并使用對應的JSONParser進行處理
              print(request.data)
              # application/x-www-form-urlencoded 或 multipart/form-data時,request.POST中才有值
              print(request.POST)
              print(request.FILES)
              return Response('POST請求,響應內容')
      
          def put(self, request, *args, **kwargs):
              return Response('PUT請求,響應內容')
      

      f. 全局使用
      settings.py

      REST_FRAMEWORK = {
          'DEFAULT_PARSER_CLASSES':[
              'rest_framework.parsers.JSONParser'
              'rest_framework.parsers.FormParser'
              'rest_framework.parsers.MultiPartParser'
          ]
      
      }
      

      urls.py

      from django.conf.urls import url, include
      from web.views import TestView
      
      urlpatterns = [
          url(r'test/', TestView.as_view(), name='test'),
      ]
      

      views.py

      #!/usr/bin/env python
      # -*- coding:utf-8 -*-
      from rest_framework.views import APIView
      from rest_framework.response import Response
      
      
      class TestView(APIView):
          def post(self, request, *args, **kwargs):
              print(request.content_type)
      
              # 獲取請求的值,并使用對應的JSONParser進行處理
              print(request.data)
              # application/x-www-form-urlencoded 或 multipart/form-data時,request.POST中才有值
              print(request.POST)
              print(request.FILES)
              return Response('POST請求,響應內容')
      
          def put(self, request, *args, **kwargs):
              return Response('PUT請求,響應內容')
      

      注意:個別特殊的值可以通過Django的request對象 request._request 來進行獲取

      posted @ 2018-06-05 16:56  zz小公子  閱讀(114)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 久久99热只有频精品8| 国产一级片内射在线视频| 日韩精品中文字幕有码| 一边吃奶一边做动态图 | 黑人猛精品一区二区三区| 亚洲av无码成人影院一区| 亚洲欧美人成网站在线观看看| 蜜桃臀av一区二区三区| 人人妻人人做人人爽夜欢视频| 国产午夜精品理论大片| 视频一区视频二区卡通动漫| 中文字幕无码专区一VA亚洲V专| 久久精品国产亚洲av麻| 日韩精品中文字幕有码| 色哟哟www网站入口成人学校| 欧美黑人又粗又大又爽免费| 日本老熟女一二三区视频| 久久无码高潮喷水| 久久精品国产99国产精品严洲| 成人精品自拍视频免费看| 免费又爽又大又高潮视频| 99精品人妻少妇一区| 色婷婷日日躁夜夜躁| 日日噜噜夜夜狠狠久久蜜桃| 日韩av一区二区高清不卡| 四虎永久精品在线视频| 昌江| 老色99久久九九爱精品| 成人免费A级毛片无码片2022| 翁源县| 亚洲女同在线播放一区二区| 国产小视频一区二区三区| 精品综合久久久久久97| 国产av综合一区二区三区| 国产成人欧美一区二区三区| 九月婷婷人人澡人人添人人爽| 人人超碰人摸人爱| 国产av亚洲精品ai换脸电影| 亚洲精品色一区二区三区| 9999国产精品欧美久久久久久| 亚洲精品一区二区三区婷婷月|