PYTHON DJANGO를 사용하여 REST API 구축 - 2부 🐍
* 🤓 INTRODUCTION
* 🧠 THE PLAN
* 📚 TERMINOLOGY
* 🦄 ENTITES AND RELATIONSHIPS
* 🌎 CREATE THE PROJECT
* 🙏 THANK YOU
🤓 소개
Hello, my dear hackers! Welcome, to the second part of the "Building the REST API with Python Django" series. I hope you are all having a great day, today is a big day, we will start planning and implementing the REST API using Python Django Rest Framework.
Please feel free to connect with me via , or
🧠 계획
Let me explain the plan. Don't worry, I will provide a visual example too 😎 We are going to build the REST API handling the company data for Employees, Sectors, and Projects! Each employee, sector, and project is described with specific attributes that are usually of some significance to the user consuming the data. Let me show you the diagram, and I will describe each entity separately as well as the relationships among them.먼저 용어를 정리하겠습니다.
📚 용어
- RELATION - the table with rows and columns
- ATTRIBUTE - named column of the relation
- ATTRIBUTE DOMAIN - the set of the allowed values for an attribute
- CARDINALITY - Number of data instances (rows) in the relation
- RELATION KEY - An attribute or a set of attributes that identify each data instance in a unique manner
- PRIMARY KEY - A candidate key which is selected to identify each data instance in a unique manner
- FOREIGN KEY - An attribute or a set of attributes getting paired-up with the primary key (candidate key) of some other relation
- ENTITY INTEGRITY - non of the primary key's attributes can have the value of NULL - no primary key can be NULL
- REFERENTIAL INTEGRITY - Values of the foreign key must be equal by value to the candidate key of the specific data instance in the initial relation, or can have the value of NULL
🦄 엔티티 및 관계
Our diagram describes:
AN EMPLOYEE ENTITY - Each employee, has attributes; The name that is a composite attribute and includes the first name, middle name, and last name. Also, we have, gender, address, salary, and the unique identifier ID.
THE SECTOR ENTITY - Name, Location, and a unique identifier.
THE PROJECT ENTITY - Name Location and a unique identifier.
RELATIONSHIP 1 - The relationship between Employee and the Sector. Each employee works in only one sector, and each sector can have many employees.
RELATIONSHIP 2 - The relationship between Sector and Project. Each sector can be in charge of multiple projects but that specific project gets assigned to the specific sector.
RELATIONSHIP 3 - The relationship between Employee and the Project. Each employee can work on multiple projects, and each project can have multiple employees working on it.
So, let's get to business and start creating our project! 🚀
🌎 프로젝트 만들기
We start by creating our project, and we will use the PyCharm GUI to do so.
- Open up the PyCharm
- Click on create the new project - make sure you have the right base interpreter selected
- After the virtual environment is initialized you should see something like this in your project directory tree
- Open the terminal at the bottom left in the PyCharm IDE
- Install Django by executing this code
pip install django
- Install Django Rest Framework by executing the following code
pip install djangorestframework
- Set up a new project with a single application
django-admin startproject company .
cd company
django-admin startapp API
cd ...
따라서 우리는 프로젝트인 CompanyProject와 API라는 이름의 프로젝트 내에서 애플리케이션을 만들었습니다.
이제 PostgreSQL 데이터베이스용 psycopg2 어댑터를 설치해 보겠습니다.
pip install psycopg2
settings.py 파일로 이동하여 나머지 프레임워크와 애플리케이션을 등록하고 이를 INSTALLED_APPS에 추가합니다.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'company.API'
]
pgAdmin으로 이동하여 새 데이터베이스를 생성합니다. 내 데이터베이스 회사의 이름을 지정하겠습니다. 원하는 대로 이름을 지정할 수 있습니다.
settings.py 설정에서 데이터베이스
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'company',
'USER': 'postgres',
'PASSWORD': 'put_postgre_password_here',
'HOST': 'localhost',
'PORT': '5432'
}
}
API 디렉터리 내에 serializers.py를 만듭니다. 사용자 직렬 변환기와 사용자 그룹 직렬 변환기를 만들어 봅시다. 이 코드를 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']
그리고 이 코드를 views.py 파일에 추가합니다.
from django.contrib.auth.models import User, Group
from rest_framework import viewsets
from rest_framework import permissions
from company.API.serializers import UserSerializer, GroupSerializer
class UserViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows users to be viewed or edited.
"""
queryset = User.objects.all().order_by('-date_joined')
serializer_class = UserSerializer
permission_classes = [permissions.IsAuthenticated]
class GroupViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows groups to be viewed or edited.
"""
queryset = Group.objects.all()
serializer_class = GroupSerializer
permission_classes = [permissions.IsAuthenticated]
urls.py 안에 다음 코드를 추가합니다.
from django.urls import include, path
from rest_framework import routers
from company.API import views
router = routers.DefaultRouter()
router.register(r'users', views.UserViewSet)
router.register(r'groups', views.GroupViewSet)
# Wire up our API using automatic URL routing.
# Additionally, we include login URLs for the browsable API.
urlpatterns = [
path('', include(router.urls)),
path('api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]
마이그레이션을 실행하여 처음으로 데이터베이스를 동기화합니다.
python manage.py migrate
터미널에 다음과 같은 내용이 표시되어야 합니다.
이제 관리자 패널에 로그인하는 데 사용할 수퍼유저를 생성해 보겠습니다.
python manage.py createsuperuser --email [email protected] --username admin
이 행을 실행한 후 비밀번호를 지정해야 하며 언제든지 비밀번호를 변경할 수 있습니다.
프로젝트를 실행해 봅시다!
python manage.py runserver
그게 다야! 🎉 첫 번째 프로젝트를 생성하고 브라우저로 이동하여 HTTP://127.0.0.1:8000/으로 리디렉션하면 탐색 가능한 API를 얻을 수 있습니다.
지금은 여기까지입니다. 다음 장에서는 회사 API 및 뷰에 대한 모델을 만들 것입니다.
계속 지켜봐! 🚀
🙏 읽어주셔서 감사합니다!
References:
School notes...
School books...
Please leave a comment, tell me about you, about your work, comment your thoughts, connect with me!
☕ SUPPORT ME AND KEEP ME FOCUSED!
즐거운 해킹 시간 되세요! 😊
Reference
이 문제에 관하여(PYTHON DJANGO를 사용하여 REST API 구축 - 2부 🐍), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/devlazar/build-the-rest-api-using-python-django-part-2-2ln3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
School notes...
School books...
Reference
이 문제에 관하여(PYTHON DJANGO를 사용하여 REST API 구축 - 2부 🐍), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/devlazar/build-the-rest-api-using-python-django-part-2-2ln3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)