본문 바로가기
AI 웹개발반/Python, Django

[Django] 02 페이지 만들기

by 째깍단 2023. 4. 4.

1) 페이지 만들기

 

    (1) views.py 새롭게 만들기  **만들 기능에 따라 폴더 위치를 잘 보고 만들자

from django.http import HttpResponse

def base_response(request):
	return HttpResponse("안녕하세요! 장고의 시작입니다!")
# 웹페이지에 해당 메시지가 출력된다!

 

    (2) urls.py에 views.py 연결하기

from . import views

path('test/', views.base_response, name='first test')

  path로 경로, views.py에서 무엇을 보여줄지, 속성부여..

 

  보다보니 path자체를 알아두면 좋겠다는 생각이 든다.

  Django의 소스코드 들여다보기

더보기
def _path(route, view, kwargs=None, name=None, Pattern=None):

	#...if부분은 urls.py에서 path를 실행하기위한 부분...

	elif callable(view): #urls.py에서 실행되는 로직
		pattern = Pattern(route, name=name, is_endpoint=True)
		return URLPattern(pattern, view, kwargs, name)
    else:
	    raise TypeError('view must be a callable or a list/tuple in the case of include().') #에러설정도 되어있구나..

pattern = Pattern(route, name=name, is_endpoint=True)

 

- route : url 패턴을 가지는 문자열
- name : 선택적으로 이름을 지정하는 매개변수
- is_endpoint : URL 패턴과 일치하는 요청을 처리하는 함수, boolean값으로 처리함

정리하자면 pattern = 이름값을 부여하는데 그게 url패턴이고, 기본 url뒤에 붙으면 True값이 되어 이후 기능을 수행하도록 한다.

- view : Django에서 패턴과 일치하는 URL을 처리하기 위한 함수 혹은 클래스 기반 view
   (HttpRequests.. http요청이 들어오면 적절한 값을 키워드 인수로 호출, HttpResponse반응해준다.)
- kwargs : 함수, 클래스 기반 dict에서 요청받은 키워드 인수를 목표한 view 에 전달함
- name : URL에 이름을 지어서 Django 어디에서나 명확하게 참조하기 위함

어떻게 적긴했는데 완전히 이해는 안된다^^.. 사용하다보면 익숙해지겠지

아 path는 임의의 url을 생성해서 생성하고자하는 기능을 불러와주는 코드구나~ 정도로 이해하면 되겠다.

 

 

 

2) html 파일 만들고 페이지 추가하기

 

    (1)templates에 html파일을 추가한다.

     + html 내용을 입력해야한다..!

    (이후는 1)페이지만들기 단계와 같다)


    (2)view.py

from django.shortcuts import render

render는 html파일을 요청에 따라 보여준다

 

def first_view(request):
	return render(request, 'my_test.html')

함수 first_view는 my_test.html을 보여준다.

 

path('first/', views.first_view, name='first_view'),

 urls.py에 추가한다(위에서도 썼지만 page만드는 사람이 이름 알아서 붙여 넣으면 된다)