교육/KT 에이블스쿨

[KT AIVLE School(에이블스쿨)] - 16주차 후기(Django활용 Web App개발)

aaaahy 2023. 11. 27. 18:57

에이블 스쿨 16주차(11. 20 ~ 11.24) - 4기 AI트랙

 

Django활용 Web App 개발

Django

: 백엔드를 담당하는 파이썬 풀스택 웹프레임워크
- MVT 디자인 패턴 (Model, View, Template)
 
Django Project
: Django에서의 웹 사이트, 웹 애플리케이션
** Path 변수 선언
: URL 문자열 일부를 뷰 함수의 인자로 전달하기 위해 선언
 
Django Model
⇢ ORM을 이용하여 DB처리 ⇢ SQL 필요 없다
 
앱 생성하기

> python manage.py startapp app_name

 
프로젝트 생성하기

> python manage.py inspectdb > app_name/models.py

 
모델 관계 설정
1) 1 : 1 (일대일) 관계

class OneToOneField(해당하는 모델, on_delete, **options)

# 사용예시
models.OneToOneField(User, on_delete=models.CASCADE)

2) 1 : M (일대다) 관계

class ForeignKey(1측에 해당하는 모델, on_delete, **options)

# 사용예시
models.ForeignKey(Post, on_delete=models.CASCADE, related_name='comments')

3) N : M (다대다) 관계

class ManyToField(해당하는 모델, **options)

# 사용예시
models.ManyToManyField('Tag', null=True, blank=True)

 
모델을 DB에 연결하기(Migration)
1) migration 파일 생성

> python manage.py makemigrations (app_name)
* app_name 생략시 전체

 
2) migrate 작업

> python manage.py migrate (app_name)
* app_name 생략시 전체

 
Django Template
1) 템플릿 태그 - for

{% for 변수 in iterator 객체 %}	
	반복 실행문
{% endfor %}

# 사용예시
{% for comment in comment_all  %}
        <p>{{comment.message}} / {{comment.author}} / {{comment.updated}}</p>
{% empty %}

 
2) 템플릿 태그 - if

{% if 조건문 %}
	실행문
{% elif 조건문2 %}
	실행문2
{% else %}
	실행문3
{% endif %}

 
Django View
** Generic View
: Django에서 범용적으로 사용되는 기능을 구현해 놓은 뷰 클래스
 
1) as_view() 메서드로 사용하기

from django.views.generic import ListView

urlpatterns = [
	path('list/', ListView.as_view(model=Book))
]

 
2) generic view를 상속받은 클래스 지정하기

from django.views.generic import ListView

class MyView(ListView):
	model = Book
    
------------------------------------------
from .views import MyView

urlpatterns = [
	path('list/', MyView.as_view())
]

 
 

Django의 admin 앱과 auth 앱 등 다양한 실습을 진행하였는데 
복습을 열심히 해보는 시간을 가져야 겠다 ^!^