(base) $ conda create -n project python=3.8
(base) $ conda activate project
(project) $
(project) $ pip install django
(project) $ django-admin startproject starbucks
manage.py
사이트 관리를 도와준다.
__init__.py
해당 디렉토리가 패키지임을 알려준다
settings.py
웹 사이트 설정이 있는 파일
urls.py
URL을 선언해주는 파일
wsgi.py
웹 서버의 진입점. 웹 서버와 통신하기 위한 인터페이스
(project) $ ./manage.py startapp product
models.py
ORM과 관련되어 있는 파일
views.py
로직을 담당하는 파일
💡 Django ORM (Object Relational Mapping) 💡
객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해 주는 것을 말한다.
객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다.
객체 모델과 관계형 모델 간에 불일치가 존재한다.
ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다.
👉 객체를 통해 간접적으로 데이터베이스 데이터를 다룰 수 있다.
from django.db import models
class Menu(models.Model):
name = models.CharField(max_length = 50)
#테이블명
class Meta:
db_table = 'menus'
💡 모델 작성을 완료하면 migrate 해줘야 한다.
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 파일을 생성해야 한다.
(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')),
]
#기본적으로 포트번호 8000
./manage.py runserver
#포트 바꾸기
./manage.py runserver 8080
서버를 열면,
http://127.0.0.1:8000/product 로 접속가능하다.
🚗 aquery tool로 모델링 → model.py 작성 → DB 업로드 → views.py 작성 → urls.py 작성