GAE简单的app问题

时间:2010-10-13 02:20:43

标签: python google-app-engine

我正在使用python学习GAE。我正在尝试构建最简单的应用程序:从用户获取名称;将名称写入数据存储区;检索名称和显示页面。我尝试了教程,但我仍然不明白如何做到这一点。我很感激任何答案。谢谢

1 个答案:

答案 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 &copy; 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”%} ,然后您将从标题和内容中调用该块并将其填满

这样做会在页面中显示一个带有登录信息的页面。如果您尚未登录,则会将您重定向到登录状态,否则(表示您已登录)会显示“注销”按钮。然后在内容块上显示虚拟内容