이 글은 PC 버전 TISTORY에 최적화 되어있습니다.
질문
Django에서 slug란 무엇인가요?
Django 코드를 읽을 때, 나는 모델에서 "slug"라고 불리는 것을 많이 보았습니다. slug가 URL에 어떤 역할을 하는지 모르겠습니다.
답변
일반적으로 이미 확보된 데이터로부터 유효한 URL을 만드는 방법입니다. 예를 들어 기사 제목을 이용해 URL을 생성한다고 합시다. 수동으로 slug를 지정하는 대신, 이미 만들어논 데이터와 함수를 이용해 slug를 만드는 것을 추천합니다.
예:
<title> The 46 Year Old Virgin </title>
<content> A silly comedy movie </content>
<slug> the-46-year-old-virgin </slug>
자 이제 다음과 같이 장고 모델을 만들어봐요:
class Article(models.Model):
title = models.CharField(max_length=100)
content = models.TextField(max_length=1000)
slug = models.SlugField(max_length=40)
어떻게 이 객체를 의미있는 이름으로 URL에서 참조할까요? 아마 Article.id와 같은 방법으로 참조하겠죠?
www.example.com/article/23
또는 다음과 같이 title로 접근할 수도 있겠죠.
www.example.com/article/The 46 Year Old Virgin
공백이 포함되면 유효하지 않은 URL이므로, %20으로 치환될 거고, 굉장히 못생겼죠.
www.example.com/article/The%2046%20Year%20Old%20Virgin
www.example.com/article/the-46-year-old-virgin
이게 바로 slug입니다. the-46-year-old-virgin
. 모든 문자가 소문자화되어있고, 공백은 -
반응형
'Backend > Django' 카테고리의 다른 글
[Django] 장고 웹서비스의-이해 (8) | 2019.06.17 |
---|---|
[Django] CharField와 TextField의 차이점이 뭔가요? (0) | 2019.01.09 |