Como hacer un módulo para Visuse
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Como hacer un módulo para Visuse

on

  • 1,607 views

Más información sobre el proyecto en: http://visuse.wordpress.com

Más información sobre el proyecto en: http://visuse.wordpress.com

Statistics

Views

Total Views
1,607
Views on SlideShare
1,468
Embed Views
139

Actions

Likes
1
Downloads
2
Comments
0

2 Embeds 139

http://visuse.wordpress.com 138
http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Como hacer un módulo para Visuse Presentation Transcript

  • 1. Desarrollar un módulo para Visuse José Luis López Pino http://visuse.wordpress.com
  • 2. ¿Qué necesitamos para trabajar?  Un editor para Python. Por ejemplo, Geany.  Subversion: sistema de control de versiones.  Python ~2.6.2.  Elegir un buscador.
  • 3. Empezamos  Instalamos Python  Ubuntu: sudo apt-get install python2.6  Windows: descargar de python.org la 2.6.4.  Alta en la forja de rediris.  Descargamos el proyecto:  svn checkout https://forja.rediris.es/svn/cusl4-visuse  Los módulos los tenemos en trunk/visuse/modulos  Añadimos la clase a classes.py  Escribimos el módulo en Modulo_Nombre.py
  • 4. Lo que hace un módulo:  Obtenemos los datos del buscador (usando XML, JSON o lo que corresponda).  Creamos una instancia de la clase por cada resultado.  Creamos una lista de resultados.  Mostramos la lista en pantalla para comprobar que no hay problemas.
  • 5. Creando el módulo  Creamos Modulo_NombreBuscador.py  Contendrá la definición de dos clases:  Clase NombreBuscador  Heredará de Result y posiblemente de otro tipo (como ImageResult)  Habrá una instancia por cada resultado.  Almacena los atributos relevantes del resultado.  SearchNombreBuscador  Heredará de SearchModule.  Realiza todo el proceso de búsqueda.  La configuración se mantiene en config.py
  • 6. Clase NombreBuscador (I)  Hereda de Result y posiblemente también de ImageResult: class Result(): def __init__(self, name, url): self.name = name self.url = url def __str__(self): return self.name + "n" + self.url + "n" class ImageResult(): def __init__(self, name, url, thumbnail): Result.__init__(self, name, url) self.thumbnail = thumbnail def __str__(self): return "%sn%sn%sn" % (self.name, self.url, self.thumbnail)
  • 7. Clase NombreBuscador (II)  Únicamente tiene un ”constructor”, que inicializa los parámetros necesarios: class Wikicommons(Result, ImageResult): def __init__(self, name, url, thumbnail): ImageResult.__init__(self, name, url, thumbnail)
  • 8. Clase SearchNombreBuscador (I)  Hereda de SearchModule: class SearchModule(): def __init__(self): self.resultList = [] def __str__(self): str = "" for n in range(0, len(self.resultList)): str += "===== %d =====n" % n str += "%s" % self.resultList[n] return str def search(self, search_terms): return self.resultList def add(self, entry): pass
  • 9. Clase SearchNombreBuscador (II)  Obligatoriamente debe incluir un ”constructor”.  En un principio basta con que éste llame al ”constructor” de la clase de la que hereda (ModuleSearch): def __init__(self): SearchModule.__init__(self)
  • 10. SearchNombreBuscador (III)  El método search se comunica con el buscador en el protocolo que corresponda (Json, XML, etc.) y obtiene el listado de resultados. def search(self, search_terms): gd_client = gdata.photos.service.PhotosService() photos = gd_client.SearchCommunityPhotos(search_terms, limit=config.picasa_limit) for iterador in photos.entry: print "kkk" self.add(iterador) return self.resultList
  • 11. SearchNombreBuscador (IV)  El método add trata cada uno de los resultados llamando al constructor de la clase que creamos anteriormente: def add(self, entry): self.resultList.append(Picasa( entry.title.text, entry.content.src, entry.media.thumbnail[-1].url ))
  • 12. Probando el módulo  En el diccionario modules_dictionary del fichero config.py debemos añadir un nuevo elemento para nuestro módulo.  Se puede ejecutar un simple test mediante:  python manage.py test  Para probarlo visualmente, en el template inicial2.html añadimos la key del diccionario anterior al vector searchEngineList  Acceder a http://127.0.0.1:8000/prueba/rock