004, Django 의 요청 과 응답

5702 단어 프레임
부탁
1. URL 경로 에서 참조
정규 표현 식 에서 파 라 메 터 를 추출 하 는 방법 을 사용 하여 URL 에서 요청 파 라 메 터 를 가 져 올 수 있 습 니 다. Django 는 추출 한 파 라 메 터 를 보기 의 전송 매개 변수 에 직접 전달 합 니 다.
2. 검색 문자열 참조
요청 경로 의 검색 문자열 인자 (예: k1 = v1 & k2 = v2) 를 가 져 오 면 request. GET 속성 을 통 해 QueryDict 대상 을 되 돌려 줍 니 다.
메모: 검색 문자열 은 요청 방식 을 구분 하지 않 습 니 다. 즉, 클 라 이언 트 가 POST 방식 으로 요청 하면 request. GET 를 통 해 요청 한 검색 문자열 데 이 터 를 가 져 올 수 있 습 니 다.
3. 요청 체 전 참
전단 에서 보 낸 폼 형식의 요청 체 데 이 터 는 request. POST 속성 을 통 해 QueryDict 대상 을 되 돌려 줍 니 다.
메모: request. POST 는 POST 방식 의 요청 체 폼 데 이 터 를 가 져 올 수 있 습 니 다.
폼 형식 이 아 닌 요청 체 데 이 터 는 Django 가 자동 으로 해석 할 수 없 으 며, request. body 속성 을 통 해 가장 원시 적 인 요청 체 데 이 터 를 가 져 와 요청 체 형식 (JSON, XML 등) 에 따라 스스로 해석 할 수 있 습 니 다.request. body 는 bytes 형식 을 되 돌려 줍 니 다.
4. 머리 에 인삼 을 전달 해 달라 고 요청 합 니 다.
request. META 속성 을 통 해 요청 헤더 헤더 의 데 이 터 를 가 져 올 수 있 습 니 다. request. META 는 사전 형식 입 니 다.
5. 기타 상용 HttpRequest 대상 인자
  • method: 요청 한 HTTP 방법 을 나타 내 는 문자열 입 니 다. 일반적인 값 은 'GET', 'POST' 를 포함 합 니 다.
  • user: 요청 한 사용자 대상.
  • path: 요청 한 페이지 의 전체 경 로 를 표시 하 는 문자열 입 니 다. 도 메 인 이름과 매개 변수 부분 은 포함 되 지 않 습 니 다.
  • encoding: 제출 한 데 이 터 를 표시 하 는 문자열 입 니 다.
  • None 이면 브 라 우 저의 기본 설정 을 사용 합 니 다. 보통 utf - 8 입 니 다.
  • 이 속성 은 쓸 수 있 습 니 다. 폼 데이터 에 접근 하 는 인 코딩 을 수정 할 수 있 습 니 다. 다음 속성 에 대한 모든 접근 은 새로운 encoding 값 을 사용 할 것 입 니 다.

  • FILES: 사전 과 유사 한 대상 으로 모든 업로드 파일 을 포함 합 니 다.

  • 호응
    보 기 는 요청 을 받 고 처리 한 후 HrrpResponse 대상 이나 하위 대상 으로 돌아 가 야 합 니 다.
    1、HttpResponse
    from django.http import HttpResponse
    HttpResponse(content=   , content_type=       , status=   )

    2. HttpResponse 하위 클래스
    Django 는 일련의 HttpResponse 하위 클래스 를 제공 하여 상태 코드 를 빠르게 설정 할 수 있 습 니 다.
  • HttpResponseRedirect 301
  • HttpResponsePermanentRedirect 302
  • HttpResponseNotModified 304
  • HttpResponseBadRequest 400
  • HttpResponseNotFound 404
  • HttpResponseForbidden 403
  • HttpResponseNotAllowed 405
  • HttpResponseGone 410
  • HttpResponseServerError 500

  • 3、JsonResponse
    json 데 이 터 를 되 돌려 주 려 면 파 파 라 치 응답 대상 을 JSonResponse 로 사용 할 수 있 습 니 다.
    4. 리 디 렉 션 재 설정
    from django.shortcuts import redirect
    def demo_view(request):
         return redirect('/index.html')
    쿠키
    Cookie 는 키 - Value 형식 으로 정 보 를 저장 합 니 다.
    Cookie 는 도 메 인 이름 을 기반 으로 안전 하 며, 도 메 인 이름 이 다른 CooKie 는 서로 접근 할 수 없습니다.
    1. 쿠키 설정
    HttpResponse 대상 의 set 를 사용 할 수 있 습 니 다.쿠키 방법 으로 쿠키 설정
    HttpResponse.set_cookie(cookie , value=cookie , max_age=cookie   )

    2. 쿠키 읽 기
    HttpRequest 대상 의 COOKIES 속성 을 통 해 이번에 요청 한 쿠키 값 을 읽 을 수 있 습 니 다.
    request. COOKIES 에서 가 져 온 결 과 는 사전 형식 입 니 다.
    4. 세 션
    Session 은 컴퓨터, 특히 네트워크 응용 에서 '세 션 제어' 라 고 부른다.Session 대상 은 특정 사용자 세 션 에 필요 한 속성 과 설정 정 보 를 저장 합 니 다.이렇게 하면 사용자 가 프로그램의 웹 페이지 사 이 를 뛰 어 넘 을 때 Session 대상 에 저 장 된 변 수 는 잃 어 버 리 지 않 고 전체 사용자 세 션 에 계속 존재 합 니 다.사용자 가 프로그램의 웹 페이지 에서 요청 할 때 이 사용자 가 세 션 이 없 으 면 웹 서버 는 자동 으로 Session 대상 을 만 듭 니 다.세 션 이 만 료 되 거나 포기 되면 서버 는 이 세 션 을 종료 합 니 다.
    1. session 의 역할
    Session 의 역할 은 웹 서버 에서 사용자 의 상태 정 보 를 언제든지 장치 의 페이지 에서 접근 할 수 있 도록 유지 하 는 것 입 니 다.브 라 우 저 는 이러한 정 보 를 저장 할 필요 가 없 기 때문에 Pad 나 핸드폰 같은 브 라 우 저 장 치 를 사용 할 수 있 습 니 다.
    세 션 상태 유지!
    2. session 의 특징
  • 쿠키 의존
  • 민감 하고 중요 한 정 보 를 저장 합 니 다
  • 더 많은 바이트 지원
  • 세 션 공유 문제
  • 3. session 의 저장 방식
    기본 값 은 데이터베이스 저장 소:
    SESSION_ENGINE='django.contrib.sessions.backends.db'

    session 표 에는 세 개의 필드 가 있 습 니 다: sessionkey, session_data, expire_date.
    로 컬 캐 시 로 설정 할 수도 있 습 니 다:
    SESSION_ENGINE='django.contrib.sessions.backends.cache'

    혼합 저장 소로 설정 할 수도 있 습 니 다:
    SESSION_ENGINE='django.contrib.sessions.backends.cached_db'

    주: 우선 이 컴퓨터 메모리 에서 액세스 합 니 다. 없 으 면 데이터베이스 에서 액세스 합 니 다.
    4, session 를 redis 에 저장
    제3자 확장, django - redis 를 도입 해 야 합 니 다.
  • 설치 확장: pip install django - redis
  • settings. py 파일 설정:
  • CACHES = {
        "default": {
            "BACKEND": "django_redis.cache.RedisCache",
            "LOCATION": "redis://127.0.0.1:6379/1",
            "OPTIONS": {
                "CLIENT_CLASS": "django_redis.client.DefaultClient",
            }
        }
    }
    SESSION_ENGINE = "django.contrib.sessions.backends.cache"
    SESSION_CACHE_ALIAS = "default"
  • redis 프로필 수정
    sudo vim /etc/redis/redis.conf   --->  bind IP  
  • redis 서비스 재 개
    sudo service redis-server restart
  • 5. session 에 대한 조작
    HttpRequest 대상 의 session 속성 을 통 해 세 션 의 읽 기와 쓰기 동작 을 합 니 다.
    1) 키 가 맞 는 형식 으로 session 을 쓴다.
    request.session[' ']= 
    

    2) 키 에 따라 값 을 읽는다.
    request.session.get(' ',   )
    

    3) 모든 session 을 삭제 하고 저장 소 에서 값 부분 을 삭제 합 니 다.
    request.session.clear()
    

    4) session 데 이 터 를 삭제 하고 저장 소 에서 session 의 전체 데 이 터 를 삭제 합 니 다.
    request.session.flush()
    

    5) session 에서 지정 한 키 와 값 을 삭제 하고 저장 소 에서 한 키 와 해당 하 는 값 만 삭제 합 니 다.
    del request.session[' ']
    

    6) session 의 유효기간 설정
    request.session.set_expiry(value)
    
  • value 가 정수 라면 session 은 value 초 에 활동 하지 않 은 후에 만 료 됩 니 다.
  • value 가 0 이면 사용자 session 의 쿠키 는 사용자 의 브 라 우 저 를 닫 을 때 만 료 됩 니 다.
  • value 가 None 이면 session 유효기간 은 시스템 기본 값 을 사용 합 니 다. 기본 값 은 2 주 입 니 다. settings. py 에 SESSION 을 설정 할 수 있 습 니 다.COOKIE_AGE 에서 전역 기본 값 을 설정 합 니 다.
  • 좋은 웹페이지 즐겨찾기