Your SlideShare is downloading. ×
0
GOOGLE APPS ENGINE
Proyecto: Sistema escolar administrativo
1 Aplicacion de Google Apps:SAE
Google App :Proyecto-Web
2 Aplicacion de Google Apps:SAE
Nuestro aplicación esta hecha en el lenguaje Python y fue
realiza...
Aplicacion de Google Apps:SAE3
Descripción de la aplicación
La aplicación tiene como objetivo inscribir a personas en espe...
Aplicacion de Google Apps:SAE4
Tipos de archivos utilizados
Utilizamos CSS ,Java Script , python,
También consta de código...
Aplicacion de Google Apps:SAE5
EXPLICACION DE LAS FUNCIONES Y ELABORACION DEL
CODIGO Y LOS ARCHIVOS NECESARIOS
Aplicacion de Google Apps:SAE6
Creación de un Documento .YAML
application: proyecto-web
version: 1
runtime: python
api_ver...
Aplicacion de Google Apps:SAE7
Explicación del código
application: proyecto-web
version: 1
runtime: python
api_version: 1
...
Aplicacion de Google Apps:SAE8
Explicación del código
import os
import datetime
import copy
from google.appengine.ext impo...
Aplicacion de Google Apps:SAE9
Explicación del código
class Menu(webapp.RequestHandler):
def get(self):
template_values = ...
Aplicacion de Google Apps:SAE10
Explicación del código
classclass EstudianteEstudiante(search.SearchableModel):
matricula ...
Aplicacion de Google Apps:SAE11
Explicación del código
classclass DatosPrincipales(webapp.RequestHandler):
def post(self):...
Aplicacion de Google Apps:SAE12
Explicación del código
defdef envia_mail(e):
para="%s %s <%s>" % (e.nombres,e.apellidos,e....
Aplicacion de Google Apps:SAE13
Explicación del código
class Guardar(webapp.RequestHandler):
def post(self):
estudiante = ...
Aplicacion de Google Apps:SAE14
Explicación del código
class Buscar(webapp.RequestHandler):
def get(self):
txtFullText = s...
Aplicacion de Google Apps:SAE15
Explicación del código
application = webapp.WSGIApplication(
[('/', Menu),
('/index', Inde...
Aplicacion de Google Apps:SAE16
HTML
Aplicacion de Google Apps:SAE17
INTEGRANTES
Rafael López Gutiérrez
Blanca Alicia Rodríguez Rivas
Alejandro Josafat Loera R...
Upcoming SlideShare
Loading in...5
×

Google apps engine

1,719

Published on

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,719
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
34
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Google apps engine"

  1. 1. GOOGLE APPS ENGINE Proyecto: Sistema escolar administrativo 1 Aplicacion de Google Apps:SAE
  2. 2. Google App :Proyecto-Web 2 Aplicacion de Google Apps:SAE Nuestro aplicación esta hecha en el lenguaje Python y fue realizada para la infraestructura de Google -los recursos que utilizamos para su realización fueron -Google engine launcher  -EasyEclipse for Python Utilizamos 1 servidor para las imágenes -http://tudescarga.net/upload/ Libros que nos sirvieron fueron -Java 2 autor: Francisco Ceballos -Dominando java script Tutoriales Paginas Google engine code http://mir.aculo.us/
  3. 3. Aplicacion de Google Apps:SAE3 Descripción de la aplicación La aplicación tiene como objetivo inscribir a personas en especial alumnos que quieras llevar la clase de programación web o lenguaje de programación se pueden agregar mas clases dependiendo también puedes hacer una búsqueda para verificar quienes están inscritos también envía un correo atreves de una cuenta de Gmail envía la confirmación de que la solicitud fue aprobada Funcionamiento de la aplicación Consta de paginas HTMLConsta de paginas HTML Una pagina índex que es la principal de la aplicación como bienvenida una principal que es donde esta el formulario de inscripción Una datos que muestra los datos para verificar que estén correctos Una pagina de inscripción donde se envían los datos ala cuenta de correos Una pagina de búsqueda 1 carpeta donde se encuentra el css y java script Se muestra en el orden mencionado
  4. 4. Aplicacion de Google Apps:SAE4 Tipos de archivos utilizados Utilizamos CSS ,Java Script , python, También consta de código realizado en python la función del código hace que interactúen las paginas HTML .Así como también hace que se realice la búsqueda que se envié el correo que guarde la información CSS Que le da un estilo mas definido a los formularios Java script que hace que funcione el relog de la pagina principal le añade funciones que el HTML no puede se uso un prototipo que hace que el formulario le añada la función de detectar cuando no es introducido al campo el valor correspondiente
  5. 5. Aplicacion de Google Apps:SAE5 EXPLICACION DE LAS FUNCIONES Y ELABORACION DEL CODIGO Y LOS ARCHIVOS NECESARIOS
  6. 6. Aplicacion de Google Apps:SAE6 Creación de un Documento .YAML application: proyecto-web version: 1 runtime: python api_version: 1 handlers: - url: /stylesheets static_dir: stylesheets - url: /.* script: codigo.py Una aplicación creada con Python App Engine debe incluir un archivo de configuración denominado app.yaml que especifique la manera en la que las rutas de URL se corresponden con los controladores de solicitudes y con los archivos estáticos. También debe contener información sobre el código de la aplicación como, Nombre de la aplicación y el identificador de la última versión. Es como el directorio de la aplicación se crea en un block de notas con la extensión .yaml
  7. 7. Aplicacion de Google Apps:SAE7 Explicación del código application: proyecto-web version: 1 runtime: python api_version: 1 handlers: - url: /stylesheets static_dir: stylesheets - url: /.* script: codigo.py En application lleva el nombre la aplicación lo demás todos los .yaml en handlers va Una lista de patrones URL y descripciones de cómo se deben procesar. También va el nombre de como se llamara el código nuestro código se llama “codigo.py”
  8. 8. Aplicacion de Google Apps:SAE8 Explicación del código import os import datetime import copy from google.appengine.ext import webapp from google.appengine.ext.webapp.util import run_wsgi_app from google.appengine.ext import db from google.appengine.ext import search from google.appengine.ext.webapp import template from google.appengine.api import mail Tenemos que importar librerías y módulos necesarios así como también los módulos de google appengine y python Una aplicación webapp consta de tres partes: una o varias clases RequestHandler que procesan solicitudes y generan respuestas, una instancia de WSGIApplication que dirige las solicitudes entrantes a los controladores en función de su URL, una rutina principal que ejecuta WSGIApplication con un adaptador de CGI. Los frameworks de Webapp nos facilitan el trabajo ya que los CGI son laboriosos y lo que hace los webapp es gestionar la información para no para hacer mas fácil la programación También importamos las plantillas de Django, y módulos como e-mail, búsqueda
  9. 9. Aplicacion de Google Apps:SAE9 Explicación del código class Menu(webapp.RequestHandler): def get(self): template_values = {} path = os.path.join(os.path.dirname(__file__), 'index.html') self.response.out.write(template.render(path, template_values)) Como necesitamos hacer que interactué la aplicación creamos una clase llamada menú o también se le puede llamar mainpage hace que se integre índex.html y después self.response.out.write… hace que se muestre Como necesitamos hacer que interactué la aplicación creamos una clase llamada menú o también se le puede llamar mainpage hace que se integre índex.html y después self.response.out.write… hace que se muestre class Índex(webapp.RequestHandler): def get(self): template_values = {} path = os.path.join(os.path.dirname(__file__), 'principal.html') self.response.out.write(template.render(path, template_values)) ***Esta class hace visualizar el formulario de inscripciónEsta class hace visualizar el formulario de inscripción***
  10. 10. Aplicacion de Google Apps:SAE10 Explicación del código classclass EstudianteEstudiante(search.SearchableModel): matricula = db.StringProperty() apellidos = db.StringProperty() nombres = db.StringProperty() fechaDeNacimiento = db.DateProperty() direccion = db.StringProperty() telefono = db.StringProperty() ciudad = db.StringProperty() nivel = db.StringProperty() fecha = db.DateTimeProperty(auto_now_add=True) correo = db.StringProperty() Como necesitamos que se guarde la información usamos Almacenamiento de datos Los objetos de datos incluidos en el almacén de datos de App Engine se denominan entidades. Las entidades disponen de una o varias propiedades, es decir, valores con denominación de uno de varios tipos de datos compatibles, incluidos números enteros, valores de punto flotante, cadenas, datos, datos binarios, etc. Como necesitamos que se guarde la información usamos Almacenamiento de datos Los objetos de datos incluidos en el almacén de datos de App Engine se denominan entidades. Las entidades disponen de una o varias propiedades, es decir, valores con denominación de uno de varios tipos de datos compatibles, incluidos números enteros, valores de punto flotante, cadenas, datos, datos binarios, etc. La clase Model se proporciona a través del módulo google.appengine.ext.db.
  11. 11. Aplicacion de Google Apps:SAE11 Explicación del código classclass DatosPrincipales(webapp.RequestHandler): def post(self): template_values = { 'txtMatricula': self.request.get('txtMatricula'), 'txtApellidos': self.request.get('txtApellidos').upper(), 'txtNombres': self.request.get('txtNombres').upper(), 'txtFechaDeNacimiento': self.request.get('txtFechaDeNacimiento'), 'txtDireccion': self.request.get('txtDireccion').upper(), 'txtTelefono': self.request.get('txtTelefono'), 'txtCiudad': self.request.get('txtCiudad').upper(), 'txtCorreo': self.request.get('txtCorreo').lower(), 'cmbTipo': self.request.get('cmbTipo'), } path = os.path.join(os.path.dirname(__file__), 'datos.htmldatos.html') self.response.out.write(template.render(path, template_values)) En esta class lo que hace es recibir lo que se escribe en el formulario del HTML ejemplo si tu escribes 1451428 se guarda en txtMatricula es como si fueran los contenedores de los campos del HTML Principal para eso usamos el método POST porque se envía por la forma estándar después se mostraran el HTML datos En esta class lo que hace es recibir lo que se escribe en el formulario del HTML ejemplo si tu escribes 1451428 se guarda en txtMatricula es como si fueran los contenedores de los campos del HTML Principal para eso usamos el método POST porque se envía por la forma estándar después se mostraran el HTML datos
  12. 12. Aplicacion de Google Apps:SAE12 Explicación del código defdef envia_mail(e): para="%s %s <%s>" % (e.nombres,e.apellidos,e.correo) cuerpo = """ COMO ESTAS QUERIDO ALUMNO : %s APROBADA : TU SOLICITUD PARA QUE ASISTAS A LA CLASE QUE SELECCIONASTES A SIDO APROBADA PUEDES ASISTIR LA FECHA PROGRAMADA NOTA: No olvides presentarte un dia antes para que verifiques la hora y el grupo asignado ATENTAMENTE:Cordinador de Materia """ % (e.nombres) mail.send_mail(sender="rafaellopezgtz@gmail.com",to=para,subject="cordinacion",body=cuerpo) La función mail.send_mail() envía un mensaje de correo electrónico desde la aplicación. La dirección From: puede ser tanto la dirección de correo electrónico de un administrador registrado La función mail.send_mail() envía un mensaje de correo electrónico desde la aplicación. La dirección From: puede ser tanto la dirección de correo electrónico de un administrador registrado Se importa el modulo from google.appengine.api import mail
  13. 13. Aplicacion de Google Apps:SAE13 Explicación del código class Guardar(webapp.RequestHandler): def post(self): estudiante = Estudiante() estudiante.matricula = self.request.get('txtMatricula') estudiante.apellidos = self.request.get('txtApellidos').upper() estudiante.nombres = self.request.get('txtNombres').upper() fecha = self.request.get('txtFechaDeNacimiento') f = fecha.split('/') estudiante.fechaDeNacimiento = datetime.date(int(f[2]),int(f[1]),int(f[0])) estudiante.direccion = self.request.get('txtDireccion').upper() estudiante.telefono = self.request.get('txtTelefono') estudiante.ciudad = self.request.get('txtCiudad').upper() estudiante.nivel = self.request.get('cmbTipo') estudiante.escuela = self.request.get('txtEscuela').upper() estudiante.correo = self.request.get('txtCorreo') estudiante.put() envia_mail(estudiante) template_values = { 'txtApellidos': self.request.get('txtApellidos').upper(), 'txtNombres': self.request.get('txtNombres').upper(), 'txtCorreo': self.request.get('txtCorreo').lower(), 'tieneCorreo': (estudiante.correo != '') } path = os.path.join(os.path.dirname(__file__), 'preinscribir.html') self.response.out.write(template.render(path, template_values)) En esta clase lo que hace es guardarnos los datos usa el método post Cada consulta del almacén de datos utiliza un índice, una tabla que contiene los resultados de la consulta en el orden deseado En esta clase lo que hace es guardarnos los datos usa el método post Cada consulta del almacén de datos utiliza un índice, una tabla que contiene los resultados de la consulta en el orden deseado La clase Model se proporciona a través del módulo google.appengine.ext.db.
  14. 14. Aplicacion de Google Apps:SAE14 Explicación del código class Buscar(webapp.RequestHandler): def get(self): txtFullText = self.request.get('txtFullText').upper() if txtFullText <> '': estudiantes = Estudiante.all().search(txtFullText) template_values = { 'estudiantes': estudiantes } else: template_values = {} path = os.path.join(os.path.dirname(__file__), 'buscar.html') self.response.out.write(template.render(path, template_values)) En esta class lo que hace es buscar los datos que ingresamos en el formulario hace una búsqueda a estudiantes dependiendo del valor que le damos de búsqueda al campo txtfulltext que aparece en el html En esta class lo que hace es buscar los datos que ingresamos en el formulario hace una búsqueda a estudiantes dependiendo del valor que le damos de búsqueda al campo txtfulltext que aparece en el html
  15. 15. Aplicacion de Google Apps:SAE15 Explicación del código application = webapp.WSGIApplication( [('/', Menu), ('/index', Index), ('/principal', DatosPrincipales), '/buscar', Buscar), ('/preinscribir', Guardar)], debug=True) def main(): run_wsgi_app(application) if __name__ == "__main__": main() En nuestro objeto application debemos también indicar los nuevos controladores En nuestro objeto application debemos también indicar los nuevos controladores
  16. 16. Aplicacion de Google Apps:SAE16 HTML
  17. 17. Aplicacion de Google Apps:SAE17 INTEGRANTES Rafael López Gutiérrez Blanca Alicia Rodríguez Rivas Alejandro Josafat Loera Ramírez Marco Antonio Carcini Mora Jesús Alejandro Beltrán Reyna
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×