본문 바로가기

Django

Django 페이지 생성하기

728x90

페이지 생성 순서

  1. urls 작성
  2. views 작성
  3. templates 작성

urls 작성

# AppName/urls.py

from django.urls import path
from . import views

app_name = 'AppNames'

urlpatterns = [
		path('temp/', views.temp, name="temp")
]

  • 애플리케이션 폴더 내부에 urls.py 파일 생성
    • app_name 작성 주의
path('temp/', views.temp, name='temp')
  • urlpatterns 리스트 내부에 path()로 url 작성
    • 'temp/' : AppName/temp/ 로 요청이 들어온다면
    • views.temp : views 모델의 temp 함수 실행
    • name='temp' : 이 작업의 이름 설정

views 작성

# AppName/views.py

def temp(request):
		return render(request, 'AppNames/temp.html')

  • 페이지 함수 정의
    • 함수 이름은 urls.py의 urlpatterns 리스트 내부에 작성한 views. 이후 이름과 같아야 함
  • 첫 번째 입력 인자로 request 작성
  • 페이지 render 반환 시 첫 인자로 request 반환
  • request 입력 시, AppName 폴더 속 temp.html 반환

templates 작성

template 작성 순서

  1. base.html 작성 -> 프로젝트 단위 최초 1회
  2. templates 폴더 생성 -> 애플리케이션 단위 최초 1회
  3. templates 작성 - 개별 페이지

base.html 작성

https://chadireoroonu.tistory.com/39

 

Django 기본 탬플릿(base.html) 생성, App 탬플릿 상속

base.html 모든 html 탬플릿이 공통적으로 가지는 구조를 정의하여 다른 html 문서에서의 반복 최소화 다른 html 문서들은 base.html을 상속 받아 사용하게 됨 생성 $ mkdir templates $ code templates/base.html templa

chadireoroonu.tistory.com


templates 폴더 생성 및 개별 페이지 생성

$ mkdir templates
$ mkdir AppNames
$ code AppName/temp.html
  • AppName 폴더 내부에 templates 폴더 생성
  • templates 폴더 내부에 AppName 폴더 생성
  • templates/AppName 내부에 개별 페이지 생성

templates 작성 - 개별 페이지

{% comment %} temp.html {% endcomment %}

{% extends 'base.html' %}

{% block content %}
	<h1>TEMP</h1>
{% endblock content %}

  • base.html 의 내용을 extends 태그로 상속 받기
  • block 태그 내부에 내용 입력
  • html 규칙에 따라 내용 작성