2023-04-10 TIL

0v0baek·2023년 4월 10일
0

TIL

목록 보기
25/92

django의 urls.py

참고 문서 1

참고 문서 2

장고로 프로젝트를 만든 뒤,
하위 프로젝트 폴더에 생성 된 urls.py에 들어가면 이런 코드가 기본적으로 입력되어 있다.

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

urlpatterns = [
    path('admin/', admin.site.urls),
]

이게 대체 뭔소리냐!! 잘 이해가 안되니까 하나씩 풀어서 이해해보자.

admin 가져오기

from django.contrib import admin

django : 장고를 일컫는다.
contrib : contribution의 약자.

django.contrib장고에 기여한 프레임 워크 모음집 정도로 이해하면 된다.
(참고 링크)
장고를 설치만 하면 꺼내 쓸 수 있기 때문에 따로 설치가 불필요하다.

django.contrib 코드를 눌러 들어가면 하위에 수 많은 기여한 패키지들이 있는데, admin또한 그러하다.

이름 뜻 그대로 관리자 기능을 수행해주는 패키지인데, 장고가 만들어 둔 admin페이지를 들어가기 위해선 import 할 필요가 있다.
기본적으로 설치할 때 코드가 써져있어서 따로 안써도 된다.

path('admin/', admin.site.urls),

path를 통해서 불러온다.
아래에 추가적으로 이야기 할 것 이므로 path는 뒤로 패스.

path 가져오기

from django.urls import path

공식 문서에서는 django.urls을 URLconfs를 사용하기위한 기능(function)이라고 정의하고 있다.

이 URLconf란, 클라이언트가 요청한 URL에 대해 어떤 뷰를 실행할지 결정하는 역할을 한다고 한다.(챗gpt왈...)

그니까 내 언어로 풀어서 말하자면, 저 django.urls는 요청이 들어오면 어떤 뷰(파일)를 실행할 지 정하고 url로 이동시켜주는. 정도로 이해된다.

추가로 장고에는 총 2가지 URLconf가 있는데,

1) 프로젝트 전체의 url을 관할하는 urls.py
(프로젝트 명과 같은 폴더 하위에 있다. settings.py가 위치한 그곳.)

2) 각 app의 urls.py가 있다.

path는 그 django.urls라는 패키지 하위에 있는 함수 중 하나다.

path 사용하기

path('admin/', admin.site.urls)
path('test/', views.test_view, name='test_view')

앞에서 말했듯이, path는 함수이기 때문에 안에 값을 넣어서 불러와주면 된다.

'admin/'이나 'test/'가 들어가는 첫 번째 자리는 route다. 즉, 이동경로를 말한다.

그 다음 두 번째 자리는 view가 들어가는 자리다.
view는 웹 요청(request)을 처리하고, 적절한 HTTP 응답(response)을 반환하는 python 함수나 클래스를 말한다. (라고 챗gpt가 말함..)

마지막 세 번째 자리는 이름이 들어가는데, 이건 html과 연동시킬 때 불러오기 위해서 네이밍을 해주는 거라, 굳이 html파일과 연동시킬 게 아니면 생략해줘도 괜찮다.

(버튼을 눌러 페이지 이동한다거나 같은 경우)

ForeignKey와 OneToOneField

ForeignKey

  • 다른 모델을 참조할 때 사용.
  • null 값을 가질 수 있음.
  • 일대 다 관계 나타낼 수 있음

OneToOneField

  • null 값을 가질 수 없음.
  • 일대 일 관계. (일대 다 불가능)
profile
개발 공부 하는 비전공자 새내기. 꾸준히 합시다!

0개의 댓글