elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Python (Moderador: Danielㅤ)
| | |-+  [Python]y[Google App Engine] problema con las bases de datos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Python]y[Google App Engine] problema con las bases de datos  (Leído 4,435 veces)
kerith

Desconectado Desconectado

Mensajes: 32


Ver Perfil WWW
[Python]y[Google App Engine] problema con las bases de datos
« en: 29 Diciembre 2010, 14:40 pm »

Buenas, estoy jugando un poco con google App Engine y plantillas Django, y me he propuesto escribir un protoservicio de chat.

El caso es que me ha surgido un problema a la hora de hacer llamadas a la base de datos y recuperar los mensajes para imprimirlos en la textarea html. El problema es que una vez hecha la llamada, se crea un objeto, pero no reconoce la propiedad 'mensaje', que es la que tiene el texto mismo del mensaje.

Código
  1. import wsgiref.handlers
  2. import os
  3.  
  4. from google.appengine.api import users
  5. from google.appengine.ext import webapp
  6. from google.appengine.ext import db
  7. from google.appengine.ext.webapp import util
  8. from google.appengine.ext.webapp import template
  9.  
  10. from google.appengine.ext.webapp.util import run_wsgi_app
  11.  
  12. class MainHandler(webapp.RequestHandler):
  13.    def get(self):
  14.        user = users.get_current_user()
  15.        mensajes = db.GqlQuery('SELECT * FROM Mensaje')
  16.        if user:
  17.            if mensajes.mensaje: ##Comprueba si hay mensajes en el objeto mensaje
  18.                nickname = user.nickname()
  19.                template_values = {'nickname' : nickname,
  20.                                    'mensaje' : mensajes,}
  21.                greeting = self.response.out.write(template.render('main.html', template_values))
  22.            else:
  23.                greeting = self.response.out.write('El problema es con la base de datos')
  24.        else:
  25.                greeting = ("<html><body><a href=\"%s\">Sign in or register</a></body></html>." %
  26.                            users.create_login_url("/"))
  27.  
  28.        self.response.out.write(greeting)
  29.  
  30.    def post(self):
  31.        textomensaje = self.request.get('txtboxMsg')      ##Esto guerda el mensaje
  32.        mensaje = Mensaje(mensaje = textomensaje)   ##en la base de datos,
  33.        mensaje.put()                                               ##funciona bien (comprobado)
  34.        self.redirect('/')                                          
  35.  
  36. class Mensaje(db.Model):
  37.    mensaje = db.StringProperty(required = True)
  38.    hora = db.DateTimeProperty(auto_now_add = True)
  39.  
  40. def main():
  41.    application = webapp.WSGIApplication([('/', MainHandler)],
  42.                                         debug=True)
  43.    util.run_wsgi_app(application)
  44.  
  45.  
  46. if __name__ == '__main__':
  47.    main()
  48.  

Aqui esta el simple codigo del programa


« Última modificación: 29 Diciembre 2010, 18:02 pm por Leo Gutiérrez. » En línea


Solo me arrepiento de no vivir lo suficiente para saciar mi curiosidad.
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: [Python]y[Google App Engine] problema con las bases de datos
« Respuesta #1 en: 29 Diciembre 2010, 15:10 pm »

Seguro que esa consulta esta devolviendo algo?

Intenta cambiando esto
Código
  1. mensajes = db.GqlQuery('SELECT * FROM Mensaje').fetch()

En tu code estas guardando la consulta, pero no la estas ejecutando, y tengo mis dudas de si se retorna con solo verificar verificar la propiedad mensaje.

Saludos


En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
kerith

Desconectado Desconectado

Mensajes: 32


Ver Perfil WWW
Re: [Python]y[Google App Engine] problema con las bases de datos
« Respuesta #2 en: 29 Diciembre 2010, 15:43 pm »

ya lo he intentado así, pero me da da error ('list' object has no attribute 'mensaje').

Además, en el ejemplo de Google http://code.google.com/intl/es-AR/appengine/docs/python/gettingstarted/usingdatastore.html y en el video demostrativo no usa el comando .fetch() y funciona.

Gracias por tomarte interés y responder tan rapido.

salu2, kerith
En línea


Solo me arrepiento de no vivir lo suficiente para saciar mi curiosidad.
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: [Python]y[Google App Engine] problema con las bases de datos
« Respuesta #3 en: 29 Diciembre 2010, 15:47 pm »

Claaaaaaaaaro! no me había dado cuenta ;D
mensajes es una lista, por lo que la lista no tiene la propiedad mensaje, lo que tiene la propiedad mensaje son los elementos de esa lista :P
Por ej:
Código
  1. mensajes = db.GqlQuery('SELECT * FROM Mensaje')
  2. #si funciona sin fetch, entonces no lo ponemos :P
  3. print mensajes[0].mensaje

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
kerith

Desconectado Desconectado

Mensajes: 32


Ver Perfil WWW
Re: [Python]y[Google App Engine] problema con las bases de datos
« Respuesta #4 en: 29 Diciembre 2010, 16:24 pm »

Diosss, llevo más de 6 horas con el mismo problema, y sin darme cuenta de que era una lista!! (en estos momentos me siento a medio camino entre la estupidez y el noobismo XD).

Muchas gracias por descubrirlo, ahora tengo que encontrar la manera de incluirlo en la platilla de Django.

salu2, kerith
En línea


Solo me arrepiento de no vivir lo suficiente para saciar mi curiosidad.
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: [Python]y[Google App Engine] problema con las bases de datos
« Respuesta #5 en: 29 Diciembre 2010, 16:53 pm »

Eso no debería de dar trabajo, no has revisado esto? :P
http://code.google.com/p/google-app-engine-samples/

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
kerith

Desconectado Desconectado

Mensajes: 32


Ver Perfil WWW
Re: [Python]y[Google App Engine] problema con las bases de datos
« Respuesta #6 en: 30 Diciembre 2010, 02:21 am »

Muchísimas gracias por todo, ya he solucionado el problema.
Si alguien quiere el código fuente no tiene más que pedirlo.

salu2, kerith
En línea


Solo me arrepiento de no vivir lo suficiente para saciar mi curiosidad.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con bases de datos en metasploit
Bugs y Exploits
miguelskk 2 3,115 Último mensaje 3 Mayo 2011, 23:14 pm
por miguelskk
Problema con bases de datos en metasploit
Hacking
miguelskk 0 1,731 Último mensaje 1 Mayo 2011, 11:55 am
por miguelskk
Duda con Google App Engine[Python]
Desarrollo Web
[u]nsigned 0 1,515 Último mensaje 4 Junio 2012, 18:22 pm
por [u]nsigned
[Android] Problema al recuperar datos de usuario Google+
Java
DjFlo 0 3,493 Último mensaje 26 Abril 2013, 12:52 pm
por DjFlo
Bases de datos utilizando archivo .txt en Python.
Scripting
El mas antiguo 7 3,926 Último mensaje 14 Noviembre 2022, 21:03 pm
por El mas antiguo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines