코딩공부/Python Django

KKU likelion rest project (1)

integerJI 2019. 10. 27. 22:20

바탕화면에 homework라는 폴더를 만들어 줍시다.

 

이번 프로젝트는 homework폴더에서 진행합니다.

 

home work를 만들어 주었으면 어느 때와 같이 기본 설정을 해줍니다.

 

python -m venv myvenv
source myvenv/Scripts/activate
pip install django

이와 같이 pip버전의 업그레이드가 필요하면 바로바로 업그레이드해줍시다.

 

그리고 이번 프로젝트의 핵심인 djangorestframework를 설치합니다.

pip install djangorestframework

이제 기본 환경이 세팅되었으니 새로운 homework프로젝트와 mystorage앱을 만들어줍시다.

 

django-admin startproject homework

최상위 homework 폴더 이름을 project로 변경 후 이동

cd project
python manage.py startapp mystorage

project/homework/settings.py

 

settings.py에 설치한 framework와 새로운 앱을 등록하여 준다.

 

다음은 mystorage에서 url을 관리해주기 위하여

 

project/mystorage/urls.py 파일을 새롭게 생성하여 준다.

 

이제 mystorage의 urls.pt와 homework의 urls.py를 연결하여 주기 위하여

 

homework/urls.py로 이동하여 코드를 수정하여 준다.

 

from django.contrib import admin

from django.urls import path, include

 

from mystorage import urls

 

urlpatterns = [

    path('admin/', admin.site.urls),

    path('', include('mystorage.urls')),

]

이제 mystorage/urls.py를 설정하여 주자

 

from rest_framework.routers import DefaultRouter

from django.urls import path, include

from mystorage import views

 

router = DefaultRouter()

router.register('essay', views.PostViewSet)

 

urlpatterns = [

    path('', include(router.urls)),

]

 

mystorage/urls.py를 설정하여 주었다면 mystorage/views.py를 설정하여 주자.

 

from rest_framework import viewsets

from .models import Essay

# from .serializers import EssaySerializer

 

class PostViewSet(viewsets.ModelViewSet):

 

    queryset = Essay.objects.all()

    # serializer_class = EssaySerializer

#뒤의 serializers는 아직 설정하지 않아서 주석처리하여주었다.

 

mystorage/views.py안의 내용을 바꿨으면

 

mystorage앱 폴더에 새로운 파일 serializers.py를 새로 생성하여 준다.

 

이제 mystorage/views.py의 내용을 완성해 주기 위하여

 

mystorage/models.py 먼저 설정하여 주겠다.

 

from django.db import models

from django.conf import settings

 

class Essay(models.Model):

    author = models.ForeignKey(settings.AUTH_USER_MODEL, default=1on_delete=models.CASCADE)

    title = models.CharField(max_length=30)

    body = models.TextField()

models.py를 수정하였다면 데이터베이스에 등록을 해준다.

 

python manage.py makemigrations
python manage.py migrate

mystorage/models.py를 설정하고 다음으로는 mystorage/serializers를 설정하자

 

from .models import Essay

from rest_framework import serializers

 

class EssaySerializer(serializers.ModelSerializer):

 

    class Meta:

        model = Essay

        fields = '__all__'

또한 serializer를 설정하여 주었으니 아까 mystorage/views.py의 주석을 삭제하여주자.

 

완료가 되었다면 새로운 admin계정을 생성하여 준다.

 

python manage.py createsuperuser

 새로운 admin을 생성하였다면 runserver를 통하여 서버가 잘 작동이 되는지 확인하여 준다.

python manage.py runserver

 

 

서버가 잘 돌아간다면 admin 페이지로 들어가 새로운 user를 추가하여 준다.

Add를 눌러 새로운 user1과 user2를 만들어 주자.

save버튼을 눌러 user2까지 생성이 완료된 걸 확인하여 준다.

 

이제 다시 매인 홈 http://127.0.0.1:8000/ 로 돌아와

 

아까 설정해준 essay로 들어가 새로운 글을 써보자.

 

essay의 주소로 들어가 새로운 글을 써볼 수 있다.

 

 

'코딩공부 > Python Django' 카테고리의 다른 글

KKU likelion django project (2)  (0) 2020.01.02
KKU likelion django project (1)  (0) 2020.01.02
KKU likelion rest project (4)  (0) 2019.10.28
KKU likelion rest project (3)  (1) 2019.10.28
KKU likelion rest project (2)  (0) 2019.10.27