url 이란?
-> 간단하게 WEb page의 주소이며, 각 page는 고유한 url를 가진다.
Django URLs
장고의 애플리케이션은 입력받은 URL을 통해 어떤 page를 보여줘야하는지 알고 있다.
이때, Django는 URLconf (URL configuration) 를 사용한다.
URLconf란?
- 장고에서 URL과 일치하는 view를 찾기위한 패턴들의 집합
- mysite/urls.py
URLconf를 사용하기위해서 urls.py 파일을 이용한다.
#urls.py
"""mysite URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/2.0/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]
- """~""" 이 부분은 Docstring으로서 file의 기능을 설명하는 것이다.
- 위의 코드를 보면 이전 post에서 다루었던 admin page에 대한 url이 정의되어 있다.
-> 장고는 위의 urlpattern 정의를 통해 admin/로 시작하는 모든 URL를 view와 대조해 찾아낸다.
-> 많은 URL이 admin url에 포함될 수 있어서 정규표현식을 사용한다.
Homepage url 지정
'http://localhost:8000/' url를 blog home으로 지정하고 post 목록 (index) 를 보여줄 것이다.
또한 mysite/urls.py file을 깨끗하게 유지한 채로 , blog application 에서 mysite/urls.py 파일로 url들을 가져올 것이다.
"""mysite URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/2.0/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path ,include #include import 주의!
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog.urls')), #blog url를 include하여 path 지정
]
위의 코드를 보면 urlpatterns에 path('', include('blog.urls')) 를 추가해줌으로써 blog의 url들을 path ''에 추가 시켰다. 여기서 ''은 기본 지정 주소인 http://localhost:8000/이다. (root url)
따라서 http://localhost:8000/으로 들어오는 접속 요청은 blog.urls로 전송해 추가 명령을 찾을 것이다.
하지만 아직 blog.urls가 존재하지 않으니 만들어 줄 것이다.
from django.urls import path, include 추가 하는 것 주의!
Blog.urls
from django.urls import path #path import
from . import views #blog application에서 사용할 모든 views import
urlpatterns = [
path('', views.post_index, name='post_index'), #home page에 post index page(view) path 지정
]
위의 코드를 지정함으로써, http://localhost:8000/은 post_index라는 view로 향하게 된다.
path의 name은 URL에 이름을 붙인 것으로서 View를 식별한다.
-> 각 page의 특징을 나타내는 기능이자 잘 구분하는 기능이다.
-> 나중에 실제 서비스를 만든다면 유용하다.
아래처럼 이해하면 된다.
http://localhost:8000/ -> mysite의 path '' -> blog/urls '' -> post_index
하지만 아직 web page를 구성하기에 부족하다. 다음으로 logic을 구성하는 view를 그릴 차례다.
실제로 server를 켜놓은 console에서 blog.views에 post_index 속성이 없다고 울고 있다.
View만들기는 다음 posting!!
'Web > django' 카테고리의 다른 글
(Django) first project5 - Template (0) | 2020.08.12 |
---|---|
(Django) first project 4 - View (0) | 2020.08.12 |
(Django)first project3 - Admin (0) | 2020.08.12 |
Django MySQL 연동 (0) | 2020.08.11 |
(Django) first project 2 - Model (0) | 2020.08.11 |