7

我是 Python Web 框架的新手,正在尝试学习 Flask。我完成了教程,一切都很好。我现在正在尝试制作自己的小应用程序来学习该框架。我在我的主 flask.py 文件中有以下代码

@app.route('/') 
def index():
    return render_template('main.html')

在 main.html 我有这个 html

{% extends "layout.html" %}
{% block content %}
<div> Foo bar test</div>
{% endblock %}

然后在 layout.html 我有一个基本的网页布局,看起来像这样

<!DOCTYPE html>       
<title>Flaskpad</title>     
<link href="/static/css/bootstrap.css" rel="stylesheet">    
<link href="/static/css/flaskpad.css" rel="stylesheet">
<style type="text/css">  
.socials {   
padding: 10px;   
}   
</style>  

</head>  
<body>  
    <div class="navbar navbar-fixed-top">  
        <div class="navbar-inner">  
                <div class="container">  
                    <ul class="nav">  
                    <li class="active">  
                            <a class="brand" href="#">Flaskpad/a>  
                    </li>  
                    <li><a href="#">Login</a></li>  
                    <li><a href="#">About</a></li>  
                    <li><a href="#">Contact</a></li>  
                </ul> 
            </div>
        </div>
    </div>
    <div class="container">
        <div class="row fcontent">
            <div class="span3">
                Empty Space
            </div>
            <div class="span6 maincontent">
                {% block content %}{% endblock %}
            </div>
            <div class="span3">
                Empty Space
            </div>
        </div>
        <div class="row ffooter">
            <div class="span12">
                Made by Bar Foo
            </div>
        </div>
    </div> 
</body>  

我知道 css 链接没有正确完成,但我只是将它们作为占位符。现在,当我运行 python flask.py 并转到 localhost:5000 时,页面变为空白,我不知道为什么。如果我在将显示的扩展之前在 main.html 中输入普通文本,那么我知道它正在加载 main.html,但它似乎没有扩展布局。该页面实际上是空白的,因为当您查看源代码时什么都没有。我无法弄清楚这一点。

4

4 回答 4

3

为我工作。您的 HTML 文件是否位于与您的 python 模块相关的名为“templates”的文件夹中?

这是我的完整测试代码。

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('main.html')

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

编辑:您说:“我在我的主 flask.py 文件中有以下代码”-您可能不应该将其命名为 flask.py,这可能会把事情搞砸。

于 2012-08-31T01:43:31.620 回答
0

您使用哪种网络浏览器进行测试?

我尝试了你的代码,它使用 chrome 和 firefox 对我有用,但我确实注意到你layout.html的线上有一个错误关闭的锚标记

<a class="brand" href="#">Flaskpad/a>

也许这导致浏览器将页面显示为空白?

于 2012-08-31T02:50:00.150 回答
0

你没有错过<head>layout.html 中的开始标签吗?我在任何地方都看不到它。

于 2012-08-31T15:43:28.663 回答
0

我放弃了它,我无法让它工作。我创建了一个新目录,将文本复制并粘贴到新文件中,然后运行它并成功运行。

我不知道为什么这在这种情况下不起作用。

于 2012-09-02T03:50:06.873 回答