Django를 사용하여 Python 웹 API를 개발하려면

6275 단어 DjangoPythonWeb
Django는 Python 프로그래밍 언어 구동의 소스 모델인 보기-컨트롤러(MVC) 스타일의 웹 응용 프로그램 프레임워크입니다.이것은 Python API 개발에서 가장 환영받는 이름 중 하나로 2005년 설립된 이래로 그 지명도가 신속하게 향상되었다.
Django는 Django 소프트웨어 재단(Django Software Foundation)이 유지하고 지역사회의 대대적인 지원을 받아 전 세계에서 11600여 명의 회원을 보유하고 있다.Stack Overflow에서 Django는 대략 191000개의 라벨이 달린 문제가 있습니다.Spotify, 유튜브, 인스타그램 등 사이트는 모두 Django에 의존하여 응용 프로그램과 데이터 관리를 한다.
본고는 서버에서 데이터를 얻기 위해 HTTP 프로토콜을 사용하는 GET 방법을 보여 줍니다.
프로젝트 만들기
먼저 Django 응용 프로그램에 구조를 만듭니다.시스템의 모든 위치에서 이 작업을 수행할 수 있습니다.

$ mkdir myproject
$ cd myproject
그리고 가상 환경을 만듭니다. 이것은 우리가 필요에 따라 특정한 가방을 설치하여 프로그램을 통과시키고 현재 환경에 영향을 주지 않으며 가상 환경을 끝내면 됩니다.

$ python3 -m venv env
$ source env/bin/activate
Windows에서 명령 env\Scripts\activate를 사용하여 Python 가상 환경을 활성화합니다.
Django 및 Django REST 프레임워크 설치
다음으로 Django 및 Django REST 프레임워크 모듈을 설치합니다.

$ pip3 install django
$ pip3 install djangorestframework
새로운 Django 프로젝트 실례화
응용 프로그램에 작업 환경을 만들었으니, 새 Django 프로젝트를 실례화해야 합니다.Flask와 같은 작은 프레임워크와 달리 Django는 이 과정에서 전용 명령을 포함합니다(첫 번째 명령의 끝. 문자를 참고하십시오).

$ django-admin startproject tutorial .
$ cd tutorial
$ django-admin startapp quickstart
Django는 백엔드로 데이터베이스를 사용하기 때문에 개발을 시작하기 전에 데이터베이스를 동기화해야 합니다.django-admin 명령을 실행할 때 만든 관리자를 사용할 수 있습니다.py 스크립트는 데이터베이스를 관리합니다.현재 튜토리얼 경로에 있기 때문에.../명령으로 스크립트를 실행합니다. 이 스크립트는 같은 경로에 있습니다.

$ python3 ../manage.py makemigrations
No changes detected
$ python4 ../manage.py migrate
Operations to perform:
 Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
 Applying contenttypes.0001_initial... OK
 Applying auth.0001_initial... OK
 Applying admin.0001_initial... OK
 Applying admin.0002_logentry_remove_auto_add... OK
 Applying admin.0003_logentry_add_action_flag_choices... OK
 Applying contenttypes.0002_remove_content_type_name... OK
 Applying auth.0002_alter_permission_name_max_length... OK
 Applying auth.0003_alter_user_email_max_length... OK
 Applying auth.0004_alter_user_username_opts... OK
 Applying auth.0005_alter_user_last_login_null... OK
 Applying auth.0006_require_contenttypes_0002... OK
 Applying auth.0007_alter_validators_add_error_messages... OK
 Applying auth.0008_alter_user_username_max_length... OK
 Applying auth.0009_alter_user_last_name_max_length... OK
 Applying auth.0010_alter_group_name_max_length... OK
 Applying auth.0011_update_proxy_permissions... OK
 Applying sessions.0001_initial... OK
Django에서 사용자 만들기
예제 암호 password123을 사용하여 admin이라는 초기 사용자를 만듭니다.

$ python3 ../manage.py createsuperuser \
 --email [email protected] \
 --username admin
프롬프트에 따라 암호를 생성합니다.
Django에서 정렬된 어셈블리 및 뷰레이어 구현
Django가 HTTP GET 요청에 정보를 전달할 수 있도록 전송 대상을 유효한 응답 데이터로 변환해야 합니다.Django는 이를 위해 정렬화된 구성 요소를 구현했습니다.
프로젝트에서quickstart/serializers라는 이름을 만듭니다.py의 새 모듈은 데이터 전송에 사용할 서열화기를 정의합니다.

from django.contrib.auth.models import User, Group
from rest_framework import serializers
 
class UserSerializer(serializers.HyperlinkedModelSerializer):
  class Meta:
    model = User
    fields = ['url', 'username', 'email', 'groups']
 
class GroupSerializer(serializers.HyperlinkedModelSerializer):
  class Meta:
    model = Group
    fields = ['url', 'name']
Django의 뷰는 웹 요청을 수락하고 웹 응답을 반환하는 함수입니다.응답은 HTML 또는 HTTP 리디렉션, HTTP 오류, JSON 또는 XML 문서, 이미지 또는 TAR 파일 또는 인터넷에서 얻을 수 있는 기타 내용일 수 있습니다.보기 함수를 만들려면quickstart/views를 엽니다.py 다음 코드를 입력하십시오.이 파일 템플릿이 이미 존재하고 템플릿 텍스트가 포함되어 있으므로 이 텍스트를 보존하고 파일에 추가하십시오.

from django.contrib.auth.models import User, Group
from rest_framework import viewsets
from tutorial.quickstart.serializers import UserSerializer, GroupSerializer
 
class UserViewSet(viewsets.ModelViewSet):
  """
  API endpoint allows users to be viewed or edited.
  """
  queryset = User.objects.all().order_by('-date_joined')
  serializer_class = UserSerializer
 
class GroupViewSet(viewsets.ModelViewSet):
  """
  API endpoint allows groups to be viewed or edited.
  """
  queryset = Group.objects.all()
  serializer_class = GroupSerializer
Django를 사용하여 URL 생성
이제 사람들이 API에 액세스할 수 있도록 URL을 생성할 수 있습니다.텍스트 편집기에서 urls를 엽니다.py, 기본 예제 코드를 다음 코드로 바꿉니다.

from django.urls import include, path
from rest_framework import routers
from tutorial.quickstart import views
 
router = routers.DefaultRouter()
router.register(r'users', views.UserViewSet)
router.register(r'groups', views.GroupViewSet)
 
# Use automatic URL routing
# Can also include login URLs for the browsable API
urlpatterns = [
  path('', include(router.urls)),
  path('api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]
Django 프로젝트 설정 조정
이 예시 항목의 설정 모듈은tutorial/settings에 저장됩니다.py에서 텍스트 편집기를 열고 rest_INSTALLED_에 프레임워크 추가APPS 목록의 끝:

INSTALLED_APPS = [
  ...
  'rest_framework',
]
Django API 테스트
이제 구축된 API를 테스트할 수 있습니다.먼저 명령줄에서 내장 서버를 시작합니다.

$ python3 manage.py runserver
curl로 URL 가져오기 http://localhost:8000/users를 사용하여 API에 액세스할 수 있습니다.

$ curl --get http://localhost:8000/users/?format=json
[{"url":"http://localhost:8000/users/1/?format=json","username":"admin","email":"[email protected]","groups":[]}]
또는 Firefox 브라우저 사용:
Django와 Python의 RESTful API 사용에 대한 자세한 내용은 Django 설명서https://docs.djangoproject.com/en/2.2/를 참조하십시오.
이 글은 Django로 Python 웹 API를 개발하는 방법과 절차에 대한 소개입니다. 더 많은 Django 개발 Python 웹 콘텐츠는 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기