On Wed, Aug 6, 2008 at 4:27 AM, Phil Mayers <[EMAIL PROTECTED]> wrote: > On Tue, Aug 05, 2008 at 06:30:23PM -0500, Govind Salinas wrote: >> >> Hi Folks, >> >> I am trying to set up an application that uses twisted.web for doing >> some ad-hoc serving of data. If you are familiar with mercurial, what >> i am doing is very similar to the "hg serve" command except it is for >> use with git. >> >> So my question is, how should I compose the project. The how-tos and >> examples left me not sure of what I should do. I have something that >> runs and can serve up mako templates, but that is all it can do since >> I am doing everything manually. I would prefer not to have to code in >> serving things like css pages, 404 pages etc. I am sure this is >> already in twisted.web somewhere. > > > You haven't really given enough information. > > I presume you're using twisted.web "Resource" classes and http server? >
Yes that is correct. >> Let me give you some information about the set up I have . Basically >> I have a python program running somewhere. I will have a default set >> of files that serve the content a particular way. The default set >> will contain mako templates[1], style sheets and perhaps some images. >> So I need a way to kick off the mako templates based on the URL. The >> templates may include each other. >> >> Here is the layout >> >> content-dir/ >> __config__.py -- This is a file that currently just sets up the mapping >> between a regex that selects a page and a path >> to >> where that page's template is under the >> content-dir >> main.html -- The html files here are really the mako templates >> main.css >> etc... >> >> My server class takes in a template dir, loads the config and starts a >> server. When it gets a request it matches it against the regexes and >> runs the template. There should be some initialization that sets up >> objects that get passed to the template (in addition to values from >> the regex parsing). This is all pretty brain-dead code. > > Why does it need to be anything more than that? What's wrong with the > current code? There are a few things wrong with my current approach. One is that it feels sort of like a hack the way I am doing it. It doesn't seem like the right way. Second, since manually doing things that I normally expect the web server to be doing, I expect there are 100 things that I should be doing that I am not to act like a proper server. For instance, my css pages wouldn't load so I am manually setting the content-type, but *only* for css pages. If I end up needing other types of files, I will have to add that in as well. Another example is that I am having to roll my own page-not-found implementation. Aside from setting the response code to 404, I am not sure what else I need to be doing. Now, I have been able to get things to work for the simple pages that I have put together, and it works rather well. But it seems limited and fragile. Is that more clear. >> I was hoping for some guidance on a better strategy for doing this. > > Better how? > >> Any help would be appreciated. Bonus points if it is something that >> could easily be re-used on another webserver if someone wanted to host >> this on an existing website. > > I don't understand that bit. This is not too important, I was hoping that there was a "framework" that I could use that would be portable to other webservers if someone wanted to do so. >> >> I tried to post this before signing up to the list and I was rejected. I >> don't >> know if you guys consider that a problem. >> >> [1] I am only using mako because it seems to suit my needs from a >> templating perspective. If there is something built into twisted >> that will do the job as well, then that would be one less dependency >> that I have. > > You probably want to look at the Nevow toolkit which contains: > > * A slightly better application server / resource object hierarhcy on top of > twisted.web - my understanding is this will eventually be backported into > twisted.web > > * An XHTML & native-python deferred-aware templating engine > > * An AJAX/COMET server called Athena > > A little more detail about what's wrong with the current system would be > helpful. I think the problem is that, even having read the howtos, I do not feel like I am making full use of the libraries in twisted. I have not yet looked into newvow. However I have seen mention of .rpy files in the documentation, but not a lot on the files themselves. Is there a tutorial or some documentation on how to use rpy files? By that I mean what should go inside them, setting up the server is explained in the howtos. -Govind _______________________________________________ Twisted-web mailing list [email protected] http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-web
