2017-12-20 32 views
0

나는 (header.html 페이지에) 탐색 모음이있는 장고 프로젝트에 색인 페이지가 있습니다. 내비게이션 바를 실제로 작동 시키길 원합니다 ... 현재 네비게이션 바에서 '선생님'을 클릭하면 오류가납니다.Django 사이트에서 HTML 페이지를 다른 앱의 기본 HTML 페이지로 연결

합니다 (탐색 모음을 가지고) HEADER.html 현재의 코드

</button> 
     <div class="collapse navbar-collapse" id="navbarResponsive"> 
      <ul class="navbar-nav ml-auto"> 
      <li class="nav-item mx-0 mx-lg-1"> 
       <a class="nav-link py-3 px-0 px-lg-3 rounded js-scroll-trigger" href="/teachers/teachers.html">Teachers</a> 
      </li> 
     </div> 

질문에 위의 링크는 다음과 같습니다

HREF = "/ 교사/teachers.html"> 교사

파일 경로 /를 teachers.html 페이지입니다 구조 : C : \ 사용자 \ 사용자 \ 바탕 화면 \ RAST \ 교사 \ 템플릿 \ 교사

,

오류 :

Using the URLconf defined in website.urls, Django tried these URL patterns, in this order: 

admin/ 
admin/ 
header/ [name='header'] 
[name='index'] 
teachers/ 
The current path, teachers.html, didn't match any of these. 

내 질문입니다 - 나는 무엇 HEADER.html 현재 페이지에 작성해야합니다 (또는 내가 다른 도스 뭔가를해야합니까?)을 탐색 모음 버튼을 얻을 않는다 'teachers'를 선택하여 teachers.html 페이지로 이동하십시오.

답변

1

URL이 올바르지 않습니다.

href="/teachers/" 
3

장고 즉, 동적 웹 페이지 생성 기능 프레임 워크입니다 :

href="/teachers/teachers.html" 

당신이 urls.py 파일에 공급 한 실제 링크를 사용하는 대신 템플릿 파일 이름을 가리키는 높은 사용자 정의 및 제어를 유지하면서 웹 응용 프로그램을 유지 보수하고 확장하는 기능이 있습니다. 이 기능 중 하나는 템플릿입니다.

HREF 링크> URL>보기 : 장고 세계에서, 당신은 다음과 같이 웹 페이지 생성기를 직접 할 URL 경로를 둘 것, 그래서

당신은 이미 템플릿 디렉토리에 teachers.html에 놓여있다 > template

오류 메시지는 주어진 URL 주소와 어떤 URL이 일치 하는지를 알려주므로이를 통찰 해줍니다.

:에 키워드 장고에게 교사를 매핑하는 것을보기에 대한 지침을 제공하여 urls.py에서

<a href="{% url 'teachers %}">Teachers</a> 

을 : 당신의 navbar.html에서

은 장고 구문에서 동적 URL을 넣어

urlpatterns = [ 
    ... 
    url(r'^teachers', views.teachers), 
    ... 
] 

이제 views.py에서 교사가 웹 페이지를 제대로 생성하는 데 필요한 기능을 장고에게 알려줘야합니다.

def teachers(request): 
    return render(request, 'app/teachers.html') 

여기서 앱은 장고에서 앱의 이름으로 대체되어야합니다.

이제 장고에서 동적 프레임 워크를 구축하는 방법에 대한 높은 수준의 예입니다. 세부 사항은 빌드 및 프로젝트 구조에 따라 다를 수 있습니다. Django 문서와 튜토리얼을 읽어 보는 것이 좋습니다. 그들은 철저하고 상세합니다. https://docs.djangoproject.com/en/2.0/

마찬가지로, 가리 키려는 페이지는 URL로 선언하고보기로 생성해야합니다. views.py에서는 컨텍스트에서 템플리트로 보내야하는 많은 백엔드 작업을 수행 할 수 있습니다.