Django 코드를 작성할 때는 URL -> Veiw -> Template 순서로 작성한다.
이번 글에서는 Django URL을 작성 하는 방법에 대해 알아보겠다.
/
를 붙여주는 것이 기본 설정이다.<>
에 정의하며 view 함수의 인자로 할당됨str
: / 를 제외하고 비어있지 않은 모든 문자열, 작성하지 않을 경우 기본 값int
: 0 또는 양의 정수와 매치# urls.py
urlpatterns = [
...,
# path('hello/<str:name>/', views.hello),
path('hello/<name>/', views.hello),
]
# article/views.py
def hello(request, name):
context = {
'name' = name,
}
return render(request, 'hello.html', context)
<!-- templates/articles/hello.html -->
{% extends 'base.hmtl' %}
{% block content %}
<h1> 만나서 반가워요 {{name}}</h1>
{% endblock %}
앱이 많아지면 하나의 url 파일에서 주소를 관리하는 것이 어려워 지므로, 각 앱에서 urls.py파일을 생성한 후 매핑한다.
# project/urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('[app path]/', include('[appname].urls'))
]
# app/urls.py
app_name = '[app_name]'
urlpatterns = [
path('[function path]/', views.[function], name = '[function]'),
]
{% url ‘ ‘%}
# articles/urls.py
app_name = 'article'
urlpatterns = [
...,
]
# pages/urls.py
app_name = 'pages'
urlpatterns = [
...,
]
app_name : url_name
형태로만 사용해야 한다.