On 17 Dec 2005 23:14:33 -0800, [EMAIL PROTECTED] wrote: >Hi to all, > >I am somewhat somewhat new to Python, but apart from this I am just not >seeing lots of resources on what I am trying to do. I have seen them >in other languages like PHP and ASP. > >I am building a simple MySQL news database, which would contain, a >headline, a date, main story(body) and a graphic associated with each >story. I would like to generate an index of the pages in this database >( ie a news index with links to the articles) an to have a news >administrator upload and delete stories graphic etc. > >I have read many articles on Python CGI programming and I have Googled >extensively, but have not seen any kind of examples of how this can be >done in Python. > >I would be grateful for any assistance or pointers.
Using Nevow and Twisted Web, this might look something like (untested)... from nevow import rend, loaders, tags class NewsIndex(rend.Page): docFactory = loaders.stan(tags.html[ tags.body(render=tags.directive('index'))]) def __init__(self, connpool): super(NewsIndex, self).__init__() self.connpool = connpool def _retrieveIndex(self): return self.connpool.runQuery( "SELECT articleId, articleTitle, articleImage FROM articles") def _retrieveArticle(self, articleId): return self.connpool.runQuery( "SELECT articleBody FROM articles WHERE articleId = ?", (articleId,)) def render_index(self, ctx, data): return self._retrieveIndex().addCallback(lambda index: [ tags.div[ tags.a(href=articleID)[ tags.img(src=articleImage), articleTitle]] for (articleID, articleTitle, articleImage) in index]) def childFactory(self, ctx, name): return self._retrieveArticle(name).addCallback(lambda articleBody: ArticlePage(articleBody)) class ArticlePage(rend.Page): docFactory = loaders.stan(tags.html[ tags.body(render=tags.directive('article'))]) def __init__(self, articleBody): super(ArticlePage, self).__init__() self.articleBody = articleBody def render_article(self, ctx, data): return self.articleBody from twisted.enterprise import adbapi # Whatever DB-API 2.0 stuff you want cp = adbapi.ConnectionPool('pypgsql', ...) from twisted.application import service, internet from nevow import appserver application = service.Application("News Site") webserver = appserver.NevowSite(NewsIndex(cp)) internet.TCPServer(80, webserver).setServiceParent(application) # Run with twistd -noy <whatever you name this file> For more information about Nevow, checkout the Wiki - <http://divmod.org/trac/wiki/DivmodNevow> - or the mailing list - <http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-web> - or the IRC channel - #twisted.web on freenode. Jean-Paul -- http://mail.python.org/mailman/listinfo/python-list