gpt4 book ai didi

python - 是什么阻止我在 web.py 框架中使用 CSS 样式表?

转载 作者:太空宇宙 更新时间:2023-11-04 13:19:56 25 4
gpt4 key购买 nike

我正在完成 Learn Python The Hard Way,目前正在完成练习 51。在练习中,学生被要求尝试使用 web.py 框架构建一些基本的 Web 应用程序。第一个学习练习是提高 HTML 布局的质量,以便在格式良好的页面上构建应用程序。我正在寻找一个适用于应用程序中所有页面的模板布局,并利用 CSS 样式表来提供格式。我希望 CSS 格式是外部的,而不是在 HTML 文件中。出于某种原因,无论我如何格式化“main_layout.css”的路径,我都无法使格式更改生效。我已经尝试过带前导“/”和不带前导“/”的路径。我尝试将 CSS 文件移动到另一个文件夹(根文件夹和模板文件夹)。我尝试清空浏览器缓存以防出现问题。我尝试直接通过我的浏览器访问“static”目录和“main_layout.css”文件本身,我在这两种情况下都能做到——文件在那里,但我无法让它接受格式来自“main_layout.css”的标记。我在 google 上搜索了这个问题,检查了 web.py 的 google 组,并搜索了 stackoverflow——在所有情况下,答案都与 css 文件的路径有关,我相信我已经充分探索并尝试修复但无济于事。我已经尝试了所有可以在网上找到的建议,但我很困惑。我的代码如下:

/bin
app.py
/ex51
/static
main_layout.css
/templates
hello_form.html
index.html
layout.html
/tests

app.py的写法如下:

import web

urls = (
'/hello', 'Index'
)

app = web.application(urls, globals())

render = web.template.render('templates/', base="layout")

class Index(object):
def GET(self):
return render.hello_form()

def POST(self):
form = web.input(name="Nobody", greet="Hello")
greeting = "%s, %s" % (form.greet, form.name)
return render.index(greeting = greeting)

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

index.html 写成如下:

$def with (greeting)

$if greeting:
I just wanted to say <em style="color: green; font-size: 2em;">$greeting</em>
$else:
<em>Hello</em>, world!

hello_form.html 写成如下:

<h1>Fill out this form</h1>

<form action="/hello" method="POST">
A Greeting: <input type="text" name="greet">
<br/>
Your Name: <input type="text" name="name">
<br/>
<input type="submit">
</form>

main_layout.css 写成如下:

html, body {
height: 100%;
}

.container {
width:800px;
}

.container #body_container {
margin: 10px auto;
padding-bottom: 50px;
min-height: 100%;
text-align: center;
overflow: auto;
}

.container #footer_container {
margin-top: -50px;
height: 50px;
}

和layout.html:

$def with (content)

<html>
<head>
<link rel="stylesheet" type="text/css" href="/static/main_layout.css" />
<title>This is My Page</title>
</head>

<body>
<div class="container" id="body_container">

$:content

</div>

<div class="container" id="footer_container">
Hello World
</div>
</body>
</html>

预先感谢您的帮助。

编辑:一点额外的信息——我从我的 Windows 7 PC 的 PowerShell 运行这个脚本,并通过谷歌浏览器在 http://localhost:8080/hello 访问它。

最佳答案

您正在使用 octothorp (#) 注释掉 CSS 文件,这对于 CSS 文档是不正确的(但对于 Python 是正确的,这就是混淆所在)。使用/* 注释掉 CSS 文档中的代码。像这样:

.container /*body_container*/ {
margin: 10px auto;
padding-bottom: 50px;
min-height: 100%;
text-align: center;
overflow: auto;
}

关于python - 是什么阻止我在 web.py 框架中使用 CSS 样式表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19234756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com