Python django 에서 restful 프레임 워 크 를 어떻게 사용 합 니까?
django 를 사용 하여 앞 배경 분리 개발 을 할 때 보통
django-rest-framework
프레임 워 크 와 함께 RESTful 스타일 의 인터페이스 API 를 만 듭 니 다.프레임 워 크 소개 및 버 전 요 구 는 공식 주 소 를 참고 할 수 있 습 니 다.https://www.django-rest-framework.org본 고 는 창설
man
name
,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 에서 보 기 를 작 성 했 습 니 다.
ModelViewSet
rest프레임 워 크 제공,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 프레임 워 크 의 사용 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.