2010-10-13 7 views
0

J'apprends le GAE avec python. J'essaie de construire l'application la plus simple possible: obtenir le nom de l'utilisateur; écrire le nom dans le magasin de données; récupérer le nom et la page d'affichage. J'ai essayé le tutoriel mais je ne comprends toujours pas comment faire. J'apprécie toutes les réponses. MerciGAE simple app question

+4

1) Publiez votre code, seulement les parties pertinentes 2) Publiez vos messages de sortie/d'erreur – dutt

Répondre

3

va poster je suis un petit extrait: Créer un fichier dans votre répertoire racine, nommez-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() 

puis créez un dossier dans votre répertoire racine, nommez-modèles. À l'intérieur des modèles créer un fichier et nommez-le 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> 

Cette page est statique. Ce code {% block main%} {% endblock%} et {% block header%} {% endblock%} Ce code représente une variable qui recevra un modèle. Donc, si vous voulez mettre du contenu sur l'en-tête et le contenu, vous devez créer un nouveau fichier, appelons 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 %} 

Lorsque vous créez un nouveau fichier de modèle, vous devez mettre ce code {% extends « base.html » %} puis appeler le bloc vous en aurez d'en-tête et le contenu et le remplir.

Ce que cela fait est de présenter une page avec des informations de connexion dans son en-tête. Si vous ne vous êtes pas encore connecté, il vous redirige vers la connexion, sinon (cela signifie que vous vous êtes déjà connecté) affiche le bouton Déconnexion. Présente ensuite un contenu fictif sur le bloc de contenu