main.html에서 home>hello.html로 이동해보자.
# main.html
<a href="경로">누르면 이동해요</a>
ex.
<a href="/home/go_hello">누르면 이동해요</a>
경로는 최상위 디렉토리 기준이다.
링크를 누르면 http://127.0.0.1:8000/home/go_hello 로 이동한다.
또한 home>hello.html에서 main.html로 이동하려면
# home>hello.html
<a href="/">누르면 이동해요</a>
라고 입력해야한다.
경로가 길어지면 복잡해진다.
# djangoMaster>urls.py
urlpatterns = [
...
path('', main, name="main"), # 이름을 붙여준다.
...
]
# home>urls,py
urlpatterns = [
path('go_hello', hello, name="hello"), # 이름을 붙여준다.
]
이름을 붙여준다.
같은 이름 다른 의미
path("경로", 함수, name="이름")
경로 : url/뒤에 붙은 것
함수 : views에 있는 함수
이름 : 경로를 불러주는 이름
# main.html
<a href="{% url 'hello' %}">누르면 이동해요</a>
{% %} template 언어 : django의 html에서 쓰이며 파이썬과 비슷하다.
서버를 실행해보면 잘 동작한다.
만약 다른 앱의 똑같은 이름의 url이 필요한 경우(경로 이름을 같게 설정한 경우)
# home>urls.py
app_name = "home" # 앱 이름 설정
urlpatterns = [
path('go_hello', hello, name="hello"),
]
앱 이름을 설정한 후
# main.html
<a href="{% url 'home:hello' %}">누르면 이동해요</a>
home앱의 hello라는 이름을 가진 경로로 이동해라