2017-11-27 8 views
0

저는 파이썬을 가르치려고합니다. 내 controller.py 파일에 다음 코드가 있습니다파이썬이 web.py를 사용하여 잘못된 페이지를 렌더링합니다.

import web 

urls = { 
    '/', 'home', 
    '/register', 'registerclick' 
} 

render = web.template.render("views/templates", base="MainLayout") 
app = web.application(urls, globals()) 

# Classes/Routes 

class home: 
    def GET(self): 
     return render.home() 

class registerclick: 
    def GET(self): 
     return render.register() 

if __name__ == "__main__": 
    app.run() 

을 그리고 이것은 내 MainLayout.html의 코드입니다 : 나는이 개 추가 파일 (home.html을가 있고, 등록

$def with (page) 

$var css: static/css/bootstrap.css 
$var js1: static/js/jquery-3.1.0.min.js static/js/bootstrap.js   static/js/material.min.js static/js/ripple.min.js static/js/scripty.js 

<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>CodeWizard</title> 

    $if self.css: 
     $for style in self.css.split(): 
      <link rel="stylesheet" href="$style" /> 

</head> 

<body> 
    <div id="app"> 
     <div class="navbar navbar-info navbar-fixed-top"> 
      <div class="navbar-header"> 
       <a class="navbar-brand">CodeWizard</a> 
      </div> 
      <ul class="nav navbar-nav"> 
       <li> 
        <a class="waves-effect" href="/">Home Feed<div class="ripple-container"></div></a> 
       </li> 
       <li> 
        <a href="/discover">Discover<div class="ripple-container"></div></a> 
       </li> 
       <li> 
        <a href="/profile">Profile<div class="ripple-container"></div></a> 
       </li> 
       <li> 
        <a href="/settings">Settings<div class="ripple-container"></div></a> 
       </li> 
      </ul> 
      <div class="pull-right"> 
       <a href="/register" class="btn btn-raised btn-default waves-effect">Register</a>&nbsp;&nbsp; 
      </div> 
     </div> 
     <br /><br /> 
     $:page 
    </div> 

    $if self.js1: 
     $for script in self.js1.split(): 
      <script src="$script"></script> 

</body> 
</html> 

. html), 부트 ​​스트랩을 사용할 수 있습니다 (문제는 내 문제와 관련이 없습니다).

응용 프로그램을 시작하고 브라우저를 열고 url으로 localhost : 8080을 입력하면 MainLayout.html이 브라우저에로드되지만 (예상 한대로) register.html의 내용이 $ : page에로드되고 나는 이유를 모른다.

url에서 두 번째 항목을 제거하고 controller.py에서 regnsterclick 클래스를 제거하면 MainLayout.html 페이지가로드되고 아무 것도 $ : page에로드되지 않은 것처럼 보입니다.

register.html의 내용이 표시되는 이유는 무엇입니까? 어떤 도움이라도 대단히 감사합니다.

감사합니다.

+0

당신이 localhost를 사용하여 브라우저를 엽니 다 8080, 당신은 당신이 그 URL에 대해 정의 아무것도하지 않는 오류를보고해야한다. 아마도 8080에서 실행중인 웹 서버의 '오래된'버전일까요? 설명하는 증상은 코드와 일치하지 않습니다. – pbuck

답변

1

urls을 중괄호로 정의하면 set이 순서대로 지정됩니다. 괄호를 사용하여 수행 할 수있는 tuple으로 urls을 정의해야합니다.

이 답변 잘 설명 : https://stackoverflow.com/a/46633252/2150542

+0

괄호를 괄호로 바꿨고 완벽하게 작동했습니다! 고맙습니다. –