Programing

Django의“슬러그”란 무엇입니까?

lottogame 2020. 2. 11. 22:16
반응형

Django의“슬러그”란 무엇입니까?


장고 코드를 읽을 때 종종 모델에서 "슬러그"라고 불리는 것을 볼 수 있습니다. 이것이 무엇인지 잘 모르겠지만 URL과 관련이 있다는 것을 알고 있습니다. 이 슬러그는 언제 어떻게 사용됩니까?

( 이 용어집 에서 그 정의를 읽었습니다 .)


일반적으로 이미 얻은 데이터를 사용하여 유효한 URL을 생성하는 방법입니다. 예를 들어 기사 제목을 사용하여 URL을 생성합니다. 슬러그를 수동으로 설정하는 대신 제목 (또는 다른 데이터)이 주어진 함수를 사용하여 생성하는 것이 좋습니다.

예를 들면 :

<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을 사용하여이 객체를 어떻게 참조 하시겠습니까? URL은 다음과 같이 Article.id를 사용할 수 있습니다.

www.example.com/article/23

또는 제목을 다음과 같이 참조 할 수 있습니다.

www.example.com/article/The 46 Year Old Virgin

문제는 URL에서 공백이 유효하지 않다는 것입니다. 공백은 %20다음 중 하나로 변경해야합니다.

www.example.com/article/The%2046%20Year%20Old%20Virgin

이는 의미있는 URL을 해결하지 못합니다. 이것이 더 좋지 않을까요 :

www.example.com/article/the-46-year-old-virgin

슬러그입니다. the-46-year-old-virgin. 모든 문자는 소문자로 표시되고 공백은 하이픈으로 대체됩니다 -. 예를 들어이 웹 페이지의 URL을 참조하십시오!


역사적인 맥락을 제시한다면 :

"슬러그" 라는 용어 는 프레스 글꼴이 만들어진 금속 주조 (이 경우에는 납)와 관련이 있습니다. 그런 다음 모든 용지는 글꼴 공장에서 정기적으로 재 용융하고 새로운 금형으로 다시 인쇄했습니다. 저와 같은 견습생들은 그곳에서 경력을 시작했고 더 이상은 아닙니다.

타이포 그래프는 현명하게 쌓인 리드 문자를 사용하여 기사의 텍스트를 거꾸로 작성해야했습니다. 따라서 인쇄시 글자가 용지에 똑바로 나타납니다. 모든 타이포 그래프는 인쇄 된 신문만큼 빠르게 신문을 읽을 수있었습니다. 따라서 달팽이와 같은 슬러그도 느린 이야기 (마지막으로 고쳐야 할 이야기)는 많은 사람들이 벤치에서 기다리고 있었고 주먹 문자로만 식별되었습니다. 대부분 전체 제목이 일반적으로 더 읽기 쉽습니다. 마지막 조립과 결정적인 인쇄를하기 전에 마지막 순간 수정 (저녁 종이)을 얻기 위해 벤치에서 일부 "핫"뉴스가 기다리고있었습니다.

장고는 캔자스에있는 로렌스 저널의 사무실에서 나왔습니다. 아마도 일부 인쇄 전문 용어가 여전히 남아있는 곳입니다. 프랑스에서 온 장고 열정적이고 친근한 슬러그 소년.


약간의 역사로서, '슬러그'라는 용어는 신문 편집 세계에서 비롯됩니다.

제작 과정에서 이야기에 부여되는 비공식적 인 이름입니다. 이야기가 비트 기자부터 편집자, "인쇄기"에 이르는 고문적인 경로를 따라갈 때이 이름은 "러시아 컷 유럽 유럽"이야기에서 이러한 오류를 수정 했습니까? ? ".

Django는이를 URL의 일부로 사용하여 스토리를 찾습니다 (예 :) www.mysite.com/archives/russia-cuts-europe-gas.


에서 여기 .

"슬러그"는 신문 용어이지만 여기서 의미하는 것은 URL의 마지막 비트입니다. 예를 들어 제목이 "Django에 대한 비트"인 게시물은 자동으로 "bit-about-django"가됩니다 (물론 자동 생성 된 슬러그가 마음에 들지 않으면 쉽게 변경할 수 있습니다).


슬러그는 신문 용어입니다. 슬러그는 문자, 숫자, 밑줄 또는 하이픈 만 포함 된 무언가를위한 짧은 레이블입니다. 일반적으로 URL에서 사용됩니다. (장고 문서에서와 같이)

Django의 슬러그 필드는 동적으로 생성 된 웹 페이지에 유효한 URL 을 저장하고 생성하는 데 사용됩니다 .

Stack Overflow에서이 질문을 추가하고 동적 페이지가 생성 된 방식과 마찬가지로 주소 표시 줄에 공백이 "-"인 질문 제목이 표시됩니다. 그것은 정확히 슬러그 필드의 일입니다.

여기에 이미지 설명을 입력하십시오

귀하가 입력 한 제목은 다음과 같습니다.-> Django의 "슬러그"는 무엇입니까?

슬러그 필드에 저장하면 "What-is-a-slug-in-django"가됩니다 (이 페이지의 URL 참조).


URL을 설명하는 부분은 좀 더 사람을 설명하기 위해 존재하지만 웹 서버에서 반드시 필요하지는 않습니다 . Django의 "슬러그"란 무엇입니까? 슬러그는 '장고-무엇인가-슬러그'이지만, 슬러그는 게재페이지 를 결정하는 데 사용되지 않습니다 (적어도이 사이트에서).


슬러그는 특정 콘텐츠에 대한 URL 친화적 인 짧은 레이블입니다. 문자, 숫자, 밑줄 또는 하이픈 만 포함합니다. 슬러그는 일반적으로 각 컨텐츠와 함께 저장되며 URL 문자열로 전달됩니다.

슬러그는 SlugField를 사용하여 만들 수 있습니다

전의:

class Article(models.Model):
    title = models.CharField(max_length=100)
    slug = models.SlugField(max_length=100)

제목을 슬러그로 사용하려면 django에는 slugify

from django.template.defaultfilters import slugify

class Article(models.Model):
    title = models.CharField(max_length=100)

    def slug(self):
        return slugify(self.title)

독창성이 필요한 경우 unique=True슬러그 필드에 추가하십시오 .

예를 들어 이전 예제에서

class Article(models.Model):
    title = models.CharField(max_length=100)
    slug = models.SlugField(max_length=100, unique=True)

슬러그 프로세스를 수행하는 게으른가요? 걱정하지 마세요.이 플러그인이 도움이 될 것입니다. 장고 오토 슬러그


django-admin에서 자동 슬러그. ModelAdmin에 추가됨 :

prepopulated_fields = {'slug': ('title', )}

여기에서와 같이 :

class ArticleAdmin(admin.ModelAdmin):
    list_display = ('title', 'slug')
    search_fields = ('content', )

    prepopulated_fields = {'slug': ('title', )}

강타

문자, 숫자, 밑줄 또는 하이픈 만 포함 된 짧은 레이블입니다. 일반적으로 URL에서 사용됩니다. 예를 들어, 일반적인 블로그 항목 URL에서 :

https://www.djangoproject.com/weblog/2008/apr/12/spring/ 마지막 비트 (스프링)는 슬러그입니다.

참고 URL : https://stackoverflow.com/questions/427102/what-is-a-slug-in-django



반응형