繁体   English   中英

Python使用web.py渲染错误的页面

[英]Python renders wrong page using web.py

我正在尝试自学Python。 我的controller.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中的代码:

$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>

我还有2个其他文件(home.html和register.html),并且有可用的引导程序(尽管与我的问题无关)。

当我启动应用程序并打开浏览器并输入localhost:8080作为URL时,MainLayout.html被加载到浏览器中(我期望),但是register.html的内容被加载到$:page中,但我没有知道为什么。

当我从网址中删除第二个条目并从controller.py中删除regnsterclick类时,MainLayout.html页面已加载,并且似乎没有任何东西加载到$:page中。

有什么想法可以显示register.html的内容吗? 任何帮助是极大的赞赏。

谢谢。

通过用花括号定义urls ,您将其setset ,该set是无序的。 您需要将urls定义为tuple ,可以使用括号来完成。

这个答案很好地解释了: https : //stackoverflow.com/a/46633252/2150542

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM