Django/DRF

[Django] URL Reverse를 통한 URL 작성

Jong_seoung 2024. 6. 17. 10:10
반응형

URL Reverse란?

Django에서는 동적 URL 작성을 위한 reverse 함수를 제공하며, 이를 통해 유연한 URL 문자열을 생성할 수 있다. URL Reverse는 view함수를 사용하여 URL을 역으로 계산하여 찾아내는 것이다. 

 

URL Reverse의 장점

  • 유지 보수성 향상: URL 패턴이 변경되더라도 URL Reverse 기능을 사용하면 뷰나 템플릿에서 URL을 수정할 필요가 없다.
  • 코드 가독성 향상: URL을 하드코딩하는 것이 아니라 URL의 이름을 사용하여 가독성을 높일 수 있다.
  • SEO 최적화: URL Reverse를 사용하면 URL을 더 쉽게 관리할 수 있어 SEO에 유리한 구조를 유지할 수 있다.

 

URL Reverse 사용 방법

Django에서 URL Reverse를 사용하는 방법은 간단하다. reverse 함수를 사용하면 되는데, 아래 예제를 통해서 설명하도록 하겠다.

 

먼저, URL 패턴을 정의해야한다. urls.py 파일에서 아래와 같이 URL 패턴을 정의한다.

# urls.py
from django.urls import path
from . import views

app_name = post

urlpatterns = [
    path('post/<int:id>/', views.post_detail, name='post_detail'),
]

 

View에서 URL Reverse 사용

def create_post(request):
    # 블로그 포스트 생성 로직
    new_post = Post.objects.create(title="New Post", content="This is a new post.")
    # 생성된 포스트의 상세 페이지로 리디렉션
    return redirect('posts:post_detail', id=new_post.id)

 

 

템플릿에서 URL Reverse 사용

<a href="{% url 'post:post_detail' post.id %}">{{ post.title }}</a>

 

모델에서 URL Reverse 사용

# models.py
from django.db import models
from django.urls import reverse

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()

    def get_absolute_url(self):
        return reverse('posts:post_detail', args=[self.id])
반응형