Python django 에서 restful 프레임 워 크 를 어떻게 사용 합 니까?

6912 단어 Pythondjangorestful
restful 프레임 워 크 사용
django 를 사용 하여 앞 배경 분리 개발 을 할 때 보통django-rest-framework프레임 워 크 와 함께 RESTful 스타일 의 인터페이스 API 를 만 듭 니 다.프레임 워 크 소개 및 버 전 요 구 는 공식 주 소 를 참고 할 수 있 습 니 다.https://www.django-rest-framework.org

본 고 는 창설manname,sex필드 를 포함 하 는 API 를 실례 학습django-rest-framework프레임 워 크 로 사용한다.
주로 다음 5 단계 가 포함 되 어 있 습 니 다:
1.Django 프로젝트 만 들 기
2.ORM 모델 만 들 기
3.Django REST 프레임 워 크 불 러 오기
4.직렬 화 모델
5.데 이 터 를 불 러 오 는 view 와 url 만 들 기
1.Django 프로젝트 만 들 기
django 만 들 기rest

django-admin startproject django_rest
django 입장rest,가상 환경 env 만 들 기

virtualenv env
가상 환경 활성화 및 django 설치

source ./env/bin/activate
django 설치

pip install django
rest 만 들 기app

python manage.py startapp rest_app
app 을 등록 하고 app 을 INSTALLED 에 추가 합 니 다.APPS

#setting.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_app'
]
배경 관리자 계 정 만 들 기

$ python manage.py createsuperuser

Username (leave blank to use 'root'):admin 
Email address: 
Password: 
Password (again): 
Superuser created successfully.
2.ORM 모델 만 들 기
데이터 베 이 스 는 기본 sqlite 3 를 사용 하면 됩 니 다.변경 이 필요 하 다 면 setting.py 에서 databases 설정 을 사용 할 수 있 습 니 다.
수정 우리/djangorest/models.py 우리man모델 추가

#models.py

from django.db import models



# Create your models here.
class Man(models.Model):
    name = models.CharField(max_length=64)
    sex = models.CharField(max_length=64)

    def __str__(self):
        return self.name
데이터베이스 이전

python manage.py makemigrations 
python manage.py migrate

django 백 엔 드 를 통 해 삭제 하고 수정 할 수 있 도록 Man 이라는 model 을 백 엔 드 에 등록 합 니 다.admin.py 는 다음 과 같 습 니 다.

#admin.py
from django.contrib import admin
from .models import Man
# Register your models here.

admin.site.register(Man)  #   Man   
django 서비스 시작

python manage.py runserver
방문 하 다.http://127.0.0.1:8000/admin/로그 인 화면 을 볼 수 있 고 비밀 번 호 를 입력 하여 로그 인 합 니 다.

우리 의 rest 를 볼 수 있 습 니 다.app 에서 모델 man 대상 mans

그 남자

3.Django REST 프레임 워 크 불 러 오기
공구 꾸러미 를 설치 하 다

pip install djangorestframework
등록 restframework

#setting.py
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_app'
    'rest_framework' #  
]
4.직렬 화 모델
직렬 화 기 는 우리 의 모델 데 이 터 를 json 형식 으로 전환 시 켜 요청 할 수 있 습 니 다.마찬가지 로 josn 데 이 터 를 제출 할 때 직렬 화 기 는 json 데 이 터 를 모델 로 변환 하여 어떻게 사용 할 것 인가?
우 리 는 restapp 에서 파일 serializer.py 만 들 기
우 리 는 세 가지 일 을 해 야 한다.
1.Man 모델 가 져 오기
2.순서 REST 프레임 워 크 정렬 기 가 져 오기
3.새로운 클래스 를 만 들 고 모델 과 직렬 화 기 를 연결 합 니 다.

from rest_framework import serializers

from .models import Man

class Manserializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Man
        fields = ('name','sex')
5.데 이 터 를 불 러 오 는 view 와 url 만 들 기
우 리 는 서열 화 된 데 이 터 를 브 라 우 저 에 되 돌려 주어 야 하기 때문에 절 차 를 밟 아야 한다.
1.통 하지 않 는 Man 을 통 해 데이터베이스 조회
2.조 회 된 데 이 터 를 직렬 화 기 에 전달 하고 직렬 화 기 를 통 해 json 으로 전환한다.
우 리 는 restapp/views.py 에서 보 기 를 작 성 했 습 니 다.ModelViewSetrest프레임 워 크 제공,get,post 방법 포함

# views.py
from rest_framework import viewsets

from .serializers import ManSerializer
from .models import Man


class ManViewSet(viewsets.ModelViewSet):
    queryset = Man.objects.all().order_by('name')  #     queryset
    serializer_class = ManSerializer     #       
djangorest 디 렉 터 리 에서 urls.py 에 api 경로 추가

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('rest_app.urls')),
 ]
rest 에서app 디 렉 터 리 에 urls.py 를 만 들 고 보기 경 로 를 추가 합 니 다.rest 를 통 해framework 에서 router 는 우리 의 요청 이 정확 한 동적 자원 에 이 르 도록 확보 합 니 다.

from django.urls import include, path
from rest_framework import routers
from . import views

router = routers.DefaultRouter()
router.register(r'man', views.ManViewSet)   #   ManViewSet  

# Wire up our API using automatic URL routing.
# Additionally, we include login URLs for the browsable API.
urlpatterns = [
    path('', include(router.urls)), #  router  
    path('api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]
마지막 으로 서 비 스 를 시작 하고 방문 하 겠 습 니 다.http://127.0.0.1:8000/ 브 라 우 저 에서 api 정 보 를 볼 수 있 습 니 다.

python manage.py runserver

방문 하 다.http://127.0.0.1:8000/man/ man 자원 보기

id 를 통 해 api 자원 에 접근 하기http://127.0.0.1:8000/man/1/

이렇게 해서 우리 의 기본 restful 스타일 의 API 생 성 이 완성 되 었 다.관건 은 역시 이해ModelViewSet와 내장router이 소스 코드 를 읽 지 않 으 면 그 이 유 를 알 기 어 려 울 것 같다.
Python django 에서 restful 프레임 워 크 를 어떻게 사용 하 는 지 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 restful 프레임 워 크 의 사용 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기