我正在使用python学习GAE。我正在尝试构建最简单的应用程序:从用户获取名称;将名称写入数据存储区;检索名称和显示页面。我尝试了教程,但我仍然不明白如何做到这一点。我很感激任何答案。谢谢
答案 0 :(得分:3)
我要发布一个小片段: 在根目录中创建一个文件,将其命名为main.py
from google.appengine.api import users
from google.appengine.ext import webapp
from google.appengine.ext.webapp import template
from google.appengine.ext.webapp.util import run_wsgi_app
# Pagina principal
class MainPage(webapp.RequestHandler):
def get(self):
if users.get_current_user():
url = users.create_logout_url(self.request.uri)
url_linktext = "Bem Vindo: "+ str(users.get_current_user()) + ". Logout "
else:
url = users.create_login_url(self.request.uri)
url_linktext = ' Entrar '
values = {
'url': url,
'url_linktext': url_linktext,
}
self.response.out.write(template.render('templates/index.html', values))
application = webapp.WSGIApplication([
('/', MainPage),
],debug=True)
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()
然后在根目录中创建一个文件夹,将其命名为模板。内部模板创建一个文件并将其命名为base.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link href="styles/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="mainContainer">
<!--menu-->
<div id="menu">
<ul id="menuUl">
<li class="selected"><a href="/"> Inicio </a> </li>
<li><a href="#">Sobre</a></li>
<li><a href="#">Else</a></li>
<li><a href="#">Portfolio</a></li>
<li><a href="#">Contacto</a></li>
</ul>
</div>
<!--End menu-->
</div>
<hr />
<!--End Navigation-->
<div id="header" >
{% block header %} {% endblock %}
</div>
<div id="contentContainer">
<!--content-->
<div id="content">
{% block main %} {% endblock %}
</div>
<div id="contentBottom" >
<div id="contentBottomLeft"></div>
<div id="contentBottomRight"></div>
</div>
</div>
<div id="footer">
<div id="footerMenu">
<ul>
<li class="selected"><a href="/"> Inicio </a> </li>
<li><a href="#">Sobre</a></li>
<li><a href="#">Ipca</a></li>
<li><a href="#">Portfolio</a></li>
<li><a href="#">Contacto</a></li>
</ul>
</div>
<p>Copyright © 2010 Martin . Todos os direitos reservados.</p>
</div>
</div>
</div>
</body>
</html>
此页面是静态的。此代码 {%block main%} {%endblock%} 此 {%block header%} {%endblock%} 此代码表示将接收模板的变量。因此,如果您想将内容放在标题和内容上,您必须创建一个新文件,让我们调用index.html。
{% extends "base.html" %}
{% block header %}
<div class="hello">
<a href="{{ url }}">{{ url_linktext }}</a>
</div>
{% endblock %}
{% block main %}
<h1>Um pouco de palha</h1>
<p class="smallSubtitle">Isto e mais palha .......</p>
{% endblock %}
当您创建新模板文件时,您必须将此代码 {%extends“base.html”%} ,然后您将从标题和内容中调用该块并将其填满
这样做会在页面中显示一个带有登录信息的页面。如果您尚未登录,则会将您重定向到登录状态,否则(表示您已登录)会显示“注销”按钮。然后在内容块上显示虚拟内容