
기존의 길고 복잡한 URL 방식에서 특수문자 등을 제거한 간편 URL을 선호하고 있습니다.
기존 URL : https://example.com/products?category=2&pid=25
간편 URL : https://example.com/products/2/25
파이썬 장고 프레임워크도 간편URL 방식을 사용하는데, 우아한 URL(Elegant URL)이라고 부르기도 합니다.
from django.urls import include, path
urlpatterns = [
path("index/", views.index, name="main-view"),
path("bio/<username>/", views.bio, name="bio"),
path("articles/<slug:title>/", views.article, name="article-detail"),
path("articles/<slug:title>/<int:section>/", views.section, name="article-section"),
path("blog/", include("blog.urls")),
...,
]
장고에서는 정규표현식을 이용해 URL을 정의할 수 있습니다.
from django.urls import include, re_path
urlpatterns = [
re_path(r"^index/$", views.index, name="index"),
re_path(r"^bio/(?P<username>\w+)/$", views.bio, name="bio"),
re_path(r"^blog/", include("blog.urls")),
re_path(r"^articles/(?P<year>[0-9]{4}/$", views.year_archive),
re_path(r"^articles/(?P<year>[0-9]{4}/(?P<month>[0-9]{2}/$", views.month_archive),
re_path(r"^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<slug>[\w-]+)/$", views.article_detail),
...,
]
정규식에 익숙하시면 쉽게 이해할 수 있는데요.
익숙하지 않은 분들은 아래 표에 자주 사용하는 정규 표현식의 메타문자와 특수문자를 정리하였으니 참고하시기 바랍니다.
기호
|
설명
|
^
|
문자열 시작할 때
|
$
|
문자열이 끝날 때
|
+
|
바로 앞에 있는 문자 1개 이상
|
*
|
바로 앞에 있는 문자 0개 이상
|
?
|
바로 앞에 있는 문자 0개 또는 1개
|
()
|
패턴을 묶음으로 처리할 때
|
[]
|
문자셋을 나타낼 때
|
-
|
문자셋에서 범위를 나타낼 때
[0-9] : 0~9 사이
[a-zA-Z] : a ~ z, A~Z 알파벳 대소문자
[\w-]+ : 알파벳대소문자, 숫자, 언더스코어(_), 하이픈(-) 으로 구성된 문자열
|
{}
|
n번 반복
[0-9]{4} : 0~9사이의 숫자 4개
|
\d
|
모든 숫자
|
\w
|
알파벳 대소문자, 숫자, 언더스코어(_)
\w : [0-9a-zA-Z_] 와 같음
|
\s
|
공백문자
|
관련 자료
[매뉴얼] 장고 공식 문서
'Python' 카테고리의 다른 글
pynecone 페이지 추가 (0) | 2023.01.27 |
---|---|
pynecone 설치 및 프로젝트 생성 (0) | 2023.01.27 |
Python으로 Firestore Database (클래스를 통한 입출력) (0) | 2023.01.25 |
Python으로 Firestore Database 다루기 (설정 / CRUD) (0) | 2023.01.25 |
Python dataclass 사용하기 (0) | 2022.12.29 |