>

TIL

8주차 Day 3. ERD, Django Template

ekdud 2024. 8. 14. 15:33

📑

     

    Django 작동 과정  

    1. http 요청(Request)이 들어오면
    2. URL(urls.py) 처리
    3. View(views.py) 처리
    4. Template(html) 처리
    5. http 응답(Response) 전달

     

     

     

    Django 공식 문서

    https://docs.djangoproject.com/en/4.2/

     

     

     

     

    Django Template Language

    : DTL. 파이썬과 비슷하게 되어있음. 파이썬 코드가 안쪽에 들어가는것이 아님. DTL 문법이 파이썬과 비슷할 뿐이다.

     

    • 변수의 기본 형태 -  {{ variable }} 

    • view의 context로 넘긴 데이터를 접근할 수 있음
    • . 을 사용하여 변수의 속성값에 접근 가능
    • render() 의 세번째 인자인 context에 dict 형태로 넘겨진 데이터 중, key 값이 template에서 사용 가능한 변수가 됨.

     

    • 필터의 기본 형태 -  {{ variable|filter }} 

    • 변수에 어떠한 작업을 추가적으로 더해 수정하고 싶을때 사용
    • 약 60개의 built-in template filter가 제공되며 일부 필터는 인자를 받기도 함. 🔗공식문서

    ex. 넘겨준 데이터를 소문자로 표시하는 필터.(데이터는 그대로. 보여지는 것만 바뀜.)

    {{ first_name|lower }}
    

     

     

    • 태그의 기본 형태 -  {% tag %} 

    • 반복문 또는 논리, 조건문을 수행하여 제어 흐름을 만들거나 특수한 기능을 수행
    • 일부는 시작 태그와 종료 태그가 있음
    {# if문 예시 #}
    
    {% if ~ %}
    {% endif %}

     

     

    • 주석 달기

    {# 한 줄 주석 #}
    
    {% comment %}
     여러줄
     주석
    {% endcomment %}

     

     

     

     

    Template 상속

    •  {% block block_name %} {% endblock block_name %} 
      • 상위 템플릿에서 하위 템플릿 마다 달라질 부분을 정의
    •  {% extends 'template_name' %} 
      • 하위 템플릿에서 상위 템플릿을 상속해서 확장한다는 것
      • 템플릿의 가장 최상단에 위치해야함
      • 다중상속을 지원하지 않음

    ✓ 코드의 재사용성에 초점이 맞춰져 있으며, 상위 템플릿에 공통이 될 부분을 정의하고

    하위 템플릿에서 달라질 부분을 블록(Block)으로 만드는 Skeleton 형태이다.

     

     


     

     

    개체 관계 다이어그램(ERD)

    : Entity Relationship Diagram. 데이터베이스 논리 설계 단계에서 작성하는 문서. 개체들 간에 어떤 연관관계를 나타내는 지를 개발자 외의 이해관계자도 이해할 수 있게끔 다이어그램으로 나타냄.

    *개체 - 특정할 수 있는 어떤 대상. 데이터베이스에서는 '테이블'.

    *이렇게 그리도록 약속되어 있지만 사용하는 집단마다 차이가 있을 수 있다.



     

     

     ERD 툴 

    Aquerytool https://aquerytool.com/?demo=y - 로그인하면 더 잘 활용할 수 있음.
    DBdiagram https://dbdiagram.io/d - 로그인하면 더 잘 활용할 수 있음.
    Drowid https://app.diagrams.net/ - 로그인하지 않고 사용할 수 있는 간단한 툴.

     

    Excel, PPT, word, Figma 등을 이용해도 됨. 중요한 건, 수정이 용이한 tool을 사용하는 것.

    SQLAlchemy나 Django-extensions를 통해 작성할 수도 있음. 텍스트 파일로도 작성 가능!

    ex. 수강생 ----0< 강의