Study/Web

[Web]Django urls.py 구성

seomj 2023. 7. 4. 17:49

URLConf

URL Configuration

장고에서 URL과 일치하는 뷰를 찾기 위한 패턴들의 집합

 

 

http://127.0.0.1:8000/ 주소를 블로그 홈 페이지로 지정하고

blog 애플리케이션에서 메인 mysite\urls.py 파일로 url들을 가져오자

 

blog.urls를 가져오기 위해 include 함수를 사용

mysite\urls.py

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('blog.urls')),
]

 

include를 적용하기 전에는

URL을 요청하면 프로젝트(mysite)의 urls.py에 방문하고 해당 URL의 함수를 호출하기 위해 애플리케이션(blog)의 views.py에 방문한다. 그 후 함수와 연결된 html을 호출하기 위해 애플리케이션(blog)의 templates에 방문한다.

 

include를 적용하면

URL을 요청하기 위해 프로젝트(mysite)의 urls.py에 방문하고 해당 URL의 urls파일을 호출하기 위해 애플리케이션(blog)의 urls.py에 방문한다. 이 후 해당 URL의 함수를 호출하기 위해 애플리케이션(blog)의 view.py를 방문하고 함수와 연결된 html을 호출하기 위해 애플리케이션(blog)의 templates에 방문한다.

 

 

blog\urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('', views.post_list, name='post_list'),
]

post_list라는 view 함수를 할당

url 패턴은 빈 문자열에 매칭

url에 "post_list"라는 이름을 붙인 것으로 뷰를 식별 

 

 

View(뷰)

애플리케이션의 "로직"을 넣는 곳

Model에서 필요한 정보를 받아와서 Template에 전달하는 역할

 

blog\views.py

from django.shortcuts import render

def post_list(request):
    return render(request, 'blog/post_list.html', {})

post_list라는 함수 생성

해당 함수는 요청(request)을 넘겨받아 render 메서드를 호출

blog/post_list.html 템플릿을 보여준다 

 

 

blog\templates\blog\post_list.html

<html>
    <head>
        <title>seomj's blog</title>
    </head>
    <body>
        <p>Hi there!</p>
        <p>It works!</p>
    </body>
</html>

 

 

서버를 실행하고 확인하면 잘 적용이 된 것을 확인할 수 있다.

 

 

 

<출처>

https://tutorial.djangogirls.org/ko/django_urls/

https://tutorial.djangogirls.org/ko/django_views/

https://tutorial.djangogirls.org/ko/html/

https://0ver-grow.tistory.com/906