Presentation is loading. Please wait.

Presentation is loading. Please wait.

More on TurboGears Leif Oppermann, 24.04.2008. Course of this lecture Example project: Movie Collection Utilizing movie data –IMDb –IMDbPy Explaining.

Similar presentations


Presentation on theme: "More on TurboGears Leif Oppermann, 24.04.2008. Course of this lecture Example project: Movie Collection Utilizing movie data –IMDb –IMDbPy Explaining."— Presentation transcript:

1 More on TurboGears Leif Oppermann, 24.04.2008

2 Course of this lecture Example project: Movie Collection Utilizing movie data –IMDb –IMDbPy Explaining –Model –Views –Controllers

3 Source of data: IMDB The Internet Movie Database (www.imdb.com) is an online database of information about movies, actors, television shows, production crew personnel, and video games. IMDb began October 17, 1990. In 1998, it was acquired by Amazon.com. As of April 26, 2007, the site featured 981,916 titles (372,912 theatrically released) and 2,336,303 people.

4

5 Getting IMDb data IMDb *always* had a data interface (Zipped text files over FTP server) a Python implementation of the interface is available: IMDBPy Remember: TurboGears uses Python!

6 IMDbPY IMDbPY is a Python package useful to retrieve and manage the data of the IMDb movie database about both movies and people. Platform-independent and written in pure Python (and few C lines), it can retrieve data from both the IMDb's web server and a local copy of the whole database.

7 Example project: Movie Collection Idea: browse movies (with IMDB info) and store favourites with annotations Functionality: –Search (fuzzy, showing matching titles) –Browse movie details –Store movie to favourites –Add a note

8

9 Uses 2 databases Database #1: imdb.sqlite –Self generated from IMDB data –>11 hours parsing –~ 2 GB in one file Database #2: devdata.sqlite –Generated by Turbogears (SQLObject)

10 Model for database #2 from turbogears.database import PackageHub from sqlobject import * hub = PackageHub("imdb01") __connection__ = hub class Movie(SQLObject): title = UnicodeCol(alternateID=True, length=40) imdbid = UnicodeCol(alternateID=True, length=16) director = UnicodeCol() notes = UnicodeCol()

11 Templates Movielist.kid Search.kid Browsemovie.kid Edit.kid Movie.kid

12 Showing your collection of movies Choose a movie or start a search ${title}

13 Editing note for: move title goes here You can return to the Movie List or Search again ${movie.notes}

14 Search Controller @expose(template="imdb01.templates.search") def search(self, searchterm): i = imdb.IMDb(**IMDB_PARAMS) # finding matching movies try: # Do the search, and get the results (a list of Movie objects). matchingtitles = i.search_movie(searchterm) except imdb.IMDbError, e: print "***ERROR connecting to IMDB. Complete error report:" print e if not matchingtitles: pass return dict(searchterm=searchterm, matchingtitles = matchingtitles)

15 Away with Powerpoint Let‘s talk about the source!

16 Thanks for your attention Questions / Comments / Get the source: –Now, or via email:LXO@CS.NOTT.AC.UKLXO@CS.NOTT.AC.UK Blog entry for this lecture: –http://www.dig-id.de/?p=35http://www.dig-id.de/?p=35

17 Additional pointers Of course there are similar frameworks for other programming languages, the "original" being Ruby on Rails. Original in the sense that its design was so influential that it quickly got adapted by others. Have a look at the following if you feel that you like what you saw in the lectures, but would rather do it in another language or framework: http://en.wikipedia.org/wiki/Ruby_on_rails (Ruby)http://en.wikipedia.org/wiki/Ruby_on_rails –http://www.rubyonrails.org/screencastshttp://www.rubyonrails.org/screencasts http://en.wikipedia.org/wiki/Cake_php (PHP)http://en.wikipedia.org/wiki/Cake_php –http://cakephp.org/screencastshttp://cakephp.org/screencasts http://en.wikipedia.org/wiki/Turbogears (Python)http://en.wikipedia.org/wiki/Turbogears –http://showmedo.com/videos/series?name=TurboGears20MinWikihttp://showmedo.com/videos/series?name=TurboGears20MinWiki http://en.wikipedia.org/wiki/Django_%28web_framework%29 (Python)http://en.wikipedia.org/wiki/Django_%28web_framework%29 –http://www.throwingbeans.org/django_screencasts.htmlhttp://www.throwingbeans.org/django_screencasts.html http://en.wikipedia.org/wiki/Google_App_Engine (Python, Django)http://en.wikipedia.org/wiki/Google_App_Engine –http://www.youtube.com/watch?v=3Ztr-HhWX1chttp://www.youtube.com/watch?v=3Ztr-HhWX1c


Download ppt "More on TurboGears Leif Oppermann, 24.04.2008. Course of this lecture Example project: Movie Collection Utilizing movie data –IMDb –IMDbPy Explaining."

Similar presentations


Ads by Google