간단한 장고 REST 프레임 워크를 사용하여

 

                                                                                                       

 

공식 문서 : HTTPS : //www.django-rest-framework.org/

GitHub의 출처 : HTTPS : //github.com/encode/django-rest-framework/tree/master

 

1. 설치 DRF

djangorestframework를 설치 PIP

  

2. rest_framework 응용 프로그램 추가

우리는 장고 학습의 틀에서 만든 데모 프로젝트를 사용 INSTALLED_APPS settings.py의에서 'rest_framework'을 추가합니다.

INSTALLED_APPS = 
    ... 
    'rest_framework' 
]

  

그럼 당신은 DRF가 개발되었다 사용할 수 있습니다.

 

정의 시리얼

방법 1. 정의

시리얼에서 장고 REST 프레임 워크를 정의하는 클래스를 사용하여, rest_framework.serializers.Serializer에서 상속해야합니다.

예를 들어, 우리는 이미 데이터베이스 모델 클래스 BookInfo이

클래스 BookInfo (models.Model) : 
    btitle = models.CharField (MAX_LENGTH = 20, verbose_name = '名称') 
    bpub_date = models.DateField (verbose_name = '发布日期', 널 (null) = 참) 
    빵 = models.IntegerField (기본값 = 0 , verbose_name = '阅读量') 
    bcomment = models.IntegerField (기본값 = 0 verbose_name = '评论量') 
    이미지 = models.ImageField (= 'booktest'upload_to, verbose_name = '图片'널 = TRUE)

  

우리는 다음과 같이이 모델 클래스의 직렬화가 정의 할 수 있습니다 제공하려면 :

BookInfoSerializer 클래스 (serializers.Serializer) : 
    "" "책 데이터 시리얼 라이저" "" 
    ID = serializers.IntegerField (레이블 = 'ID', READ_ONLY = 참) 
    BTITLE = serializers.CharField (라벨 = '이름', MAX_LENGTH = 20 ) 
    bpub_date = serializers.DateField (레이블 = '날짜', = 거짓 필수) 
    빵 = serializers.IntegerField (레이블 = '독서의 양'= 거짓)가 필요 
    bcomment = serializers.IntegerField (레이블 = '코멘트 양'필요 = 거짓) 
    이미지 = serializers.ImageField (레이블 = '사진', = 거짓 필수)

  

주 : 직렬 데이터베이스 모델뿐만 아니라 클래스 정의를 위해, 당신은 또한 데이터베이스가 아닌 데이터 모델 클래스를 정의 할 수 있습니다. 시리얼 라이저는 존재 데이터베이스 독립적이다.

 

2. 필드 및 옵션

공통 필드 유형 :

분야 필드의 건설 방법
BooleanField BooleanField ()
NullBooleanField NullBooleanField ()
CharField CharField (MAX_LENGTH = 없음, MIN_LENGTH = 없음, allow_blank = 거짓, trim_whitespace = 참)
을 emailField 을 emailField (MAX_LENGTH = 없음, MIN_LENGTH = 없음, allow_blank = 거짓)
RegexField RegexField (정규식, MAX_LENGTH = 없음, MIN_LENGTH = 없음, allow_blank = 거짓)
SlugField SlugField (최대 길이 = 50, MIN_LENGTH = 없음, allow_blank = 거짓) 
일반 필드, 정상 모드의 [A-ZA-Z0-9을 확인
-] +
URLField URLField (MAX_LENGTH = 200, MIN_LENGTH = 없음, allow_blank = 거짓)
UUIDField UUIDField (= 형식 'hex_verbose ") 
포맷 : 
. 1)  'hex_verbose' 로서, "5ce0e9a5-5ffa-654b-cee0-1238041fb31a" 
2)  'hex' 로서  "5ce0e9a55ffa654bcee01238041fb31a" 
3) 'int' - 등 :  "123456789012312313134124512351145145114" 
4) 'urn' 로서 : "urn:uuid:5ce0e9a5-5ffa-654b-cee0-1238041fb31a"
IPAddressField IPAddressField (프로토콜 = '모두', unpack_ipv4 = 거짓, ** 옵션)
IntegerField IntegerField (MAX_VALUE = 없음, MIN_VALUE = 없음)
FloatField FloatField (MAX_VALUE = 없음, MIN_VALUE = 없음)
DecimalField DecimalField (max_digits, DECIMAL_PLACES, coerce_to_string = 없음, MAX_VALUE = 없음, MIN_VALUE는 = 없음)
max_digits는 : 디지트들의 최대 개수
decimal_palces : 소수점 위치
DateTimeField DateTimeField (체재 = api_settings.DATETIME_FORMAT, input_formats = 없음)
하여 DateField 하여 DateField (체재 = api_settings.DATE_FORMAT, input_formats = 없음)
TimeField TimeField (체재 = api_settings.TIME_FORMAT, input_formats = 없음)
DurationField DurationField ()
ChoiceField ChoiceField (선택)
선택과 같은 장고의 사용
MultipleChoiceField MultipleChoiceField (선택)
및 FileField FileField와 (MAX_LENGTH = 없음, allow_empty_file = 거짓, use_url = UPLOADED_FILES_USE_URL)
ImageField ImageField (MAX_LENGTH = 없음, allow_empty_file = 거짓, use_url = UPLOADED_FILES_USE_URL)
의 ListField 의 ListField (아이 = <a_field_instance> MIN_LENGTH = 없음, MAX_LENGTH = 없음)
DictField DictField (아이 = <a_field_instance>)

옵션 매개 변수 :

参数名称 作用
max_length 最大长度
min_lenght 最小长度
allow_blank 是否允许为空
trim_whitespace 是否截断空白字符
max_value 最小值
min_value 最大值

 

추천

출처www.cnblogs.com/LiuXinyu12378/p/11247073.html