Django 프레임 워 크 의 사용 튜 토리 얼 경로 가 응답 을 요청 하 는 방법

경로
루트 는 프로젝트 의 디 렉 터 리 에 정 의 될 수도 있 고,각 응용 프로그램 에서 응용 프로그램의 루트 를 저장 할 수도 있 습 니 다.메 인 파일 urls 에서 include()를 사용 하여 각 응용 프로그램의 하위 루트 를 포함 하 는 데 이 터 를 사용 합 니 다.
경로 분석 순서
Django 가 요청 을 받 은 후 주 경로 파일 urlpatterns 의 경로 에서 위 에서 아래로 순서 로 찾 습 니 다.include 가 포함 되 어 있 으 면 하위 응용 url 의 urlpatterns 에서 찾 습 니 다(위 에서 아래로)
루트 의 끝 사선
Django 는/끝 경로 가 있 습 니 다.사용 자 는 추가/하지 않 아 도/끝 경로 로 바로 바 꿀 수 있 습 니 다.
경로 이름(같은 이름 으로 충돌 하 는 것 을 피 할 수 있 습 니 다)
예:

#    
from django.conf.urls import url,include
from django.contrib import admin
import django_test.urls

urlpatterns = [
  url(r'^admin/', admin.site.urls),
  url(r'^users/',include(django_test.urls ,namespace='users'))
]
reverser 반분 석(하위 응용 경로 의 이름 이 필요 합 니 다)
주의 점:
  • namespace 를 가리 키 지 않 은 경우 reverse(경로 name)
  • namespace 를 가리 키 는,reverse(네 임 스페이스 namespace:경로 name)
  • 요청(POST,PUT,PATCH,DELETE)기본 CSRF 보호 켜 기
    post 는 post man 테스트 도구 에서 테스트 해 야 할 것들 을 요청 합 니 다.
    CSRF 보호 주석 을 먼저 달 아 주세요.

    서버 에 매개 변 수 를 전달 하 는 방식
    URL:URL 에 직접 데 이 터 를 전달 합 니 다.
    검색 문자열:key 1=value 1&key 2=value 2;
    요청 체:body 에서 데 이 터 를 전달 합 니 다.폼,json,xml 이 있 습 니 다.
    요청 헤더:http 메시지 헤더 에서
    URL 매개 변수 전달
    정의 되 지 않 은 매개 변수 순서 전달
    하위 응용 경로 설정
    
    urlpatterns = [
      #           
      url(r'^index/$',views.index,name='index'),
      url(r'^show/$',views.show,name='show'),
      url(r'^parameter/([a-z]+)/(\d{4})$',views.parameter,name='parameter'),
    ]
    정의 보기 함수
    
    # name, age                
    def parameter(request,name, age):
    
      print('age=%s'%age)
      print('name=%s' % name)
      return HttpResponse('OK')
    이름 매개 변 수 는 이름 에 따라 전 달 됩 니 다.
    하위 경로
    
    urlpatterns = [
      #           
      url(r'^index/$',views.index,name='index'),
      url(r'^show/$',views.show,name='show'),
      url(r'^parameter/(?P<name>[a-z]+)/(?P<age>\d{4})$',views.parameter,name='parameter'),
    ]
    보기 함수
    
    # age  name       
    def parameter(request,age, name):
    
      print('age=%s'%age)
      print('name=%s' % name)
      return HttpResponse('OK')
    검색 문자열(전달 매개 변수)
    메모:검색 문자열 은 요청 방식 을 구분 하지 않 습 니 다.즉,클 라 이언 트 가 POST 방식 으로 요청 하면 request.GET 를 통 해 요청 한 검색 문자열 데 이 터 를 가 져 올 수 있 습 니 다.
    하위 경로
    
    url(r'^qust/$',views.qust),
    보기 함수
    
    def qust(request):
      a = request.GET.get('a')
      b = request.GET.get('b')
      alist = request.GET.getlist('a')
      print(a) # 3
      print(b) # 2
      print(alist) # ['1', '3']
      return HttpResponse('OK')
    실행(뒤에 추가)

    요청 체(전달 매개 변수)
    폼 클래스
    경로 설정
    
    url(r'^get_form/$', views.get_form)
    보기 함수
    
    def get_form(request):
      name = request.POST.get('name')
      age = request.POST.get('age')
      alist = request.POST.getlist('name')
      print(name)
      print(age)
      print(alist)
      return HttpResponse('OK')
    운행 하 다.


    비표 류
    경로
    
    url(r'^get_body_json/$', views.get_body_json),
    보기
    
    def get_body_json(request):
      json_str = request.body
      json_str = json_str.decode() # python3.6       
      req_data = json.loads(json_str)
      print(req_data['a'])
      print(req_data['b'])
      return HttpResponse('OK')
    운행 하 다.

    요청 헤더(전달 매개 변수)
    request.META 속성 을 통 해 요청 헤더 의 데 이 터 를 가 져 올 수 있 습 니 다.
    경로
    
    url(r'^get_head/$', views.get_head)
    보기 함수
    
    def get_head(request):
      print(request.META['CONTENT_TYPE'])
      return HttpResponse('OK')
    운행 하 다.

    흔 한 요청 헤더CONTENT_LENGTH C The length of the request body (as a string).CONTENT_TYPE C The MIME type of the request body.HTTP_ACCEPT C Acceptable content types for the response.HTTP_ACCEPT_ENCODING C Acceptable encodings for the response.HTTP_ACCEPT_LANGUAGE C Acceptable languages for the response.HTTP_HOST C The HTTP Host header sent by the client.HTTP_REFERER C The referring page, if any.HTTP_USER_AGENT C The client's user-agent string.QUERY_STRING C The query string, as a single (unparsed) string.REMOTE_ADDR C The IP address of the client.REMOTE_HOST C The hostname of the client.REMOTE_USER C The user authenticated by the Web server, if any.REQUEST_METHOD C A string such as  "GET" or  "POST" .SERVER_NAME C The hostname of the server.SERVER_PORT C The port of the server (as a string).
    호응
  •  HttpResponse 는 일련의 하위 클래스 를 제공 합 니 다
  • HttpResponseRedirect 301
  • HttpResponsePermanentRedirect 302
  • HttpResponseNotModified 304
  • HttpResponseBadRequest 400
  • HttpResponseNotFound 404
  • HttpResponseForbidden 403
  • HttpResponseNotAllowed 405
  • HttpResponseGone 410
  • HttpResponseServerError 500
  • 사례\#HttpResponse(content=응답 체,contenttype=응답 데이터 형식,status=상태 코드)
    
    # content:       
    # status_code:   HTTP     
    # content_type:        MIME  
    from django_http import HttpResponse
    
    def index(request):
      return HttpResponse('    Gaidy  ', status=202)
    JSonResponse(돌아 오 는 json 데이터)
    
    from django.http import JsonResponse
    
    def index(request):
      return JsonResponse({'name': 'gaidy', 'age': '25'})
    실행 결과

    리 디 렉 션 리 디 렉 션
    
    from django.shortcuts import redirect
    
    # django_test        
    def show(request):
      #    
      return redirect(reverse('django_test:index'))
    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기