본문 바로가기
개발/Django_python 웹 프레임워크

Django project 4 - url 관리

by 자유로운 코끼리 2020. 7. 16.
728x90

자 우리가 app이 많아지면서 프로젝트 내에 있는 url이 점점

복잡해지기 시작했습니다.

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',blogapp.views.main,name="main"),
    path('blog/detail/<int:blog_id>',blogapp.views.detail,name="detail"),
    path('blog/new/',blogapp.views.new,name="new"),
    path('blog/renew/<int:blog_id>', blogapp.views.renew, name="renew"),
    path('blog/update/<int:blog_id>', blogapp.views.update, name="update"),
    path('blog/delete/<int:blog_id>', blogapp.views.delete, name="delete"),
    path('myprofile/upload/',myprofile.views.upload,name="upload"),
    path('myprofile/upload_create/',myprofile.views.upload_create,name="upload_create"),
    path('myprofile/profile/',myprofile.views.profile,name="profile"),
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

 

워매,,,

나중에는 더 엄청나겠죵?

그래서 app별로 url을 관리하기로 합니다:>/

 

1. app 내 urls.py 만들기

blogapp 내 #urls.py

from django.contrib import admin
from django.urls import path

path를 사용하기 위해 필수적인 아이들을 import 해줍니다.

from . import views

views와 연결해야되니 그것도 import 해줍니다.

from . 은 파일이 속해있는 디렉토리를 의미하는 것으로,

즉 같은 폴더 내 views파일에 접근한다는 의미입니다.

 

이제 urlpatterns에 blogapp에 해당하는 값들을 복붙해줍니다.

이제 같은 blogapp 폴더 내에 있으니

blogapp.views.함수 가 아닌 views.함수로 바꿔줄 수 있겠죠?

urlpatterns = [
    path('detail/<int:blog_id>',views.detail,name="detail"),
    path('new/',views.new,name="new"),
    path('renew/<int:blog_id>', views.renew, name="renew"),
    path('update/<int:blog_id>', views.update, name="update"),
    path('delete/<int:blog_id>', views.delete, name="delete"),
]

 

2. 프로젝트 url에  app 내 urls.py 포함시켜주기

 

프로젝트 #urls.py

from django.urls import path,include

app 안에 있는 url을 끌어오기 위해  include를 import 해줍니다.

path('blog/',include('blogapp.urls')),

댓글