Django - flow

양희연·2020년 6월 9일
0

Django

목록 보기
1/14
post-thumbnail

1️⃣ 가상환경 만들기

(base) $ conda create -n project python=3.8
(base) $ conda activate project
(project) $



2️⃣ django 설치

(project) $ pip install django



3️⃣ 프로젝트 만들기

(project) $ django-admin startproject starbucks


manage.py 사이트 관리를 도와준다.
__init__.py 해당 디렉토리가 패키지임을 알려준다
settings.py 웹 사이트 설정이 있는 파일
urls.py URL을 선언해주는 파일
wsgi.py 웹 서버의 진입점. 웹 서버와 통신하기 위한 인터페이스



4️⃣ 앱 만들기

(project) $ ./manage.py startapp product


models.py ORM과 관련되어 있는 파일
views.py 로직을 담당하는 파일

💡 Django ORM (Object Relational Mapping) 💡

객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해 주는 것을 말한다.
객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다.
객체 모델과 관계형 모델 간에 불일치가 존재한다.
ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다.
👉 객체를 통해 간접적으로 데이터베이스 데이터를 다룰 수 있다.




5️⃣ models.py 작성

from django.db import models

class Menu(models.Model):
    name = models.CharField(max_length = 50)

    #테이블명
    class Meta:
        db_table = 'menus'

💡 모델 작성을 완료하면 migrate 해줘야 한다.




6️⃣ views.py 작성

from django.views import View
from django.http import JsonResponse

class MenuListView(View):
    def get(self, request):
        menus = Menu.objects.all()
        
        menu_list = [{
            'menu_id'   : menu.id,
            'menu_name' : menu.name
        } for menu in menus]
        
        return JsonResponse({'menu_list' : menu_list}, status = 200)

view를 호출하려면 이와 연결된 URL이 있어야 하는데, 이를 위해 URLconf가 사용된다.
product 앱에서 URLconf를 생성하려면, 앱 내에 urls.py 파일을 생성해야 한다.



7️⃣ urls.py 작성

(project) $ vi urls.py
#product/urls.py

from django.urls import path
from .views import MenuListView

urlpatterns = [
    path('', MenuListView.as_view())
]

이후 최상위 URLconf 에서 product.urls 모듈을 바라보게 설정한다.

#starbucks/urls.py

from django.urls import path, include

urlpatterns = [
    path('product', include('product.urls')),  
]



8️⃣ 웹 서버 구동

#기본적으로 포트번호 8000
./manage.py runserver

#포트 바꾸기
./manage.py runserver 8080

서버를 열면,
http://127.0.0.1:8000/product 로 접속가능하다.



🚗 aquery tool로 모델링 → model.py 작성 → DB 업로드 → views.py 작성 → urls.py 작성

profile
꾸준히 나아가자!

0개의 댓글