<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.2.3" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments on: WebOb Do-It-Yourself Framework</title>
	<link>http://blog.ianbicking.org/2008/04/17/webob-do-it-yourself-framework/</link>
	<description></description>
	<pubDate>Mon, 01 Dec 2008 22:07:04 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.3</generator>

	<item>
		<title>By: Dirk Holtwick</title>
		<link>http://blog.ianbicking.org/2008/04/17/webob-do-it-yourself-framework/#comment-24293</link>
		<dc:creator>Dirk Holtwick</dc:creator>
		<pubDate>Fri, 01 Aug 2008 11:33:23 +0000</pubDate>
		<guid>http://blog.ianbicking.org/2008/04/17/webob-do-it-yourself-framework/#comment-24293</guid>
		<description>Hi Ian. Once again you wrote a great article where each line is full of new things to learn. Inspired by this I wrote a little Python framework that supports GAE and Paster. It uses your appengine_monkey patches which I updated on some places to make some bug fixes, mainly for Windows. If you find the time to have a look at it and tell me what you thing about it I would be very glad. Here is the project page:

http://code.google.com/p/pyxer/

Thanks again for the very cool and useful tools you wrote. 
Dirk</description>
		<content:encoded><![CDATA[<p>Hi Ian. Once again you wrote a great article where each line is full of new things to learn. Inspired by this I wrote a little Python framework that supports GAE and Paster. It uses your appengine_monkey patches which I updated on some places to make some bug fixes, mainly for Windows. If you find the time to have a look at it and tell me what you thing about it I would be very glad. Here is the project page:</p>

<p><a href="http://code.google.com/p/pyxer/" rel="nofollow">http://code.google.com/p/pyxer/</a></p>

<p>Thanks again for the very cool and useful tools you wrote. 
Dirk</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeff Hammel</title>
		<link>http://blog.ianbicking.org/2008/04/17/webob-do-it-yourself-framework/#comment-16857</link>
		<dc:creator>Jeff Hammel</dc:creator>
		<pubDate>Sun, 20 Apr 2008 16:05:06 +0000</pubDate>
		<guid>http://blog.ianbicking.org/2008/04/17/webob-do-it-yourself-framework/#comment-16857</guid>
		<description>I agree that writing a framework is a useful exercise, and think that a language should provide the one true framework as a mis-notion for people that want an out of the box solution to a complex problem.

I've found webob both very useful and fun to use in writing simple RESTful apps.  I've written a paster template for a simple view with webob that might be useful to some, at least for reference: https://svn.openplans.org/svn/standalone/webob_view/trunk/
This could be used or be modified to be used with a simple framework/routing system as presented in the tutorial -- just have a bunch of views with a route for each == website.</description>
		<content:encoded><![CDATA[<p>I agree that writing a framework is a useful exercise, and think that a language should provide the one true framework as a mis-notion for people that want an out of the box solution to a complex problem.</p>

<p>I&#8217;ve found webob both very useful and fun to use in writing simple RESTful apps.  I&#8217;ve written a paster template for a simple view with webob that might be useful to some, at least for reference: <a href="https://svn.openplans.org/svn/standalone/webob&#95;view/trunk/" rel="nofollow">https://svn.openplans.org/svn/standalone/webob_view/trunk/</a>
This could be used or be modified to be used with a simple framework/routing system as presented in the tutorial &#8212; just have a bunch of views with a route for each == website.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Hoeppner</title>
		<link>http://blog.ianbicking.org/2008/04/17/webob-do-it-yourself-framework/#comment-16806</link>
		<dc:creator>Chris Hoeppner</dc:creator>
		<pubDate>Fri, 18 Apr 2008 09:58:56 +0000</pubDate>
		<guid>http://blog.ianbicking.org/2008/04/17/webob-do-it-yourself-framework/#comment-16806</guid>
		<description>Sorry for double posting. This is actually what I came to post.

I'm not sure wether you've read Diving into Python. The way code is commented in that book is absolutely genius. You see a big piece of code, just like yours. And below it you find a numbered explanation of every relevant line or group of lines.

I'm saying this because I had my little problems understanding what exactly your code does. Like the routing templating thing. I thought "Okay. This turns our nice routing syntax into actual regular expressions to use elsewhere. But *how* does he do it?".</description>
		<content:encoded><![CDATA[<p>Sorry for double posting. This is actually what I came to post.</p>

<p>I&#8217;m not sure wether you&#8217;ve read Diving into Python. The way code is commented in that book is absolutely genius. You see a big piece of code, just like yours. And below it you find a numbered explanation of every relevant line or group of lines.</p>

<p>I&#8217;m saying this because I had my little problems understanding what exactly your code does. Like the routing templating thing. I thought &#8220;Okay. This turns our nice routing syntax into actual regular expressions to use elsewhere. But <em>how</em> does he do it?&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Hoeppner</title>
		<link>http://blog.ianbicking.org/2008/04/17/webob-do-it-yourself-framework/#comment-16805</link>
		<dc:creator>Chris Hoeppner</dc:creator>
		<pubDate>Fri, 18 Apr 2008 09:51:34 +0000</pubDate>
		<guid>http://blog.ianbicking.org/2008/04/17/webob-do-it-yourself-framework/#comment-16805</guid>
		<description>Ian &#38; Niki:

For `__import__`, you can also give the 4th argument as a list with a single empty string. This is the "context" argument, meaning it acts like `from x import y`, context being the x bit. Giving it an empty string makes it return the last bit of the first argument.

For example:

    __import__('some.module', {}, {}, [''])

returns module, not some.</description>
		<content:encoded><![CDATA[<p>Ian &amp; Niki:</p>

<p>For <code>__import__</code>, you can also give the 4th argument as a list with a single empty string. This is the &#8220;context&#8221; argument, meaning it acts like <code>from x import y</code>, context being the x bit. Giving it an empty string makes it return the last bit of the first argument.</p>

<p>For example:</p>

<pre><code>__import__('some.module', {}, {}, [''])
</code></pre>

<p>returns module, not some.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian Bicking</title>
		<link>http://blog.ianbicking.org/2008/04/17/webob-do-it-yourself-framework/#comment-16778</link>
		<dc:creator>Ian Bicking</dc:creator>
		<pubDate>Thu, 17 Apr 2008 16:14:13 +0000</pubDate>
		<guid>http://blog.ianbicking.org/2008/04/17/webob-do-it-yourself-framework/#comment-16778</guid>
		<description>Niki: `__import__` returns the first segment of whatever you import.  So if you do `__import__('mypackage.mymodule')` it returns `mypackage`.  Just getting the module from `sys.modules` is, I've found, the easiest way of getting at the module that was actually imported.

Carlo: yes, you can do that.  To do it you need to pass a proxy application to `req.get_response()`.  There's one in [WSGIProxy](http://pythonpaste.org/wsgiproxy/), in `wsgiproxy.exactproxy.proxy_exact_request`.  So you can do:

    req = Request.blank('http://pythonpaste.org')
    resp = req.get_response(wsgiproxy.exactproxy.proxy_exact_request`

`proxy_exact_request` is named as such because it has no options, but reads the exact information the request contains (including stuff like SERVER_NAME so you can send a request not by DNS).</description>
		<content:encoded><![CDATA[<p>Niki: <code>__import__</code> returns the first segment of whatever you import.  So if you do <code>__import__('mypackage.mymodule')</code> it returns <code>mypackage</code>.  Just getting the module from <code>sys.modules</code> is, I&#8217;ve found, the easiest way of getting at the module that was actually imported.</p>

<p>Carlo: yes, you can do that.  To do it you need to pass a proxy application to <code>req.get_response()</code>.  There&#8217;s one in <a href="http://pythonpaste.org/wsgiproxy/">WSGIProxy</a>, in <code>wsgiproxy.exactproxy.proxy_exact_request</code>.  So you can do:</p>

<pre><code>req = Request.blank('http://pythonpaste.org')
resp = req.get_response(wsgiproxy.exactproxy.proxy_exact_request`
</code></pre>

<p><code>proxy_exact_request</code> is named as such because it has no options, but reads the exact information the request contains (including stuff like SERVER_NAME so you can send a request not by DNS).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Carlo Cabanilla</title>
		<link>http://blog.ianbicking.org/2008/04/17/webob-do-it-yourself-framework/#comment-16774</link>
		<dc:creator>Carlo Cabanilla</dc:creator>
		<pubDate>Thu, 17 Apr 2008 13:01:46 +0000</pubDate>
		<guid>http://blog.ianbicking.org/2008/04/17/webob-do-it-yourself-framework/#comment-16774</guid>
		<description>Hey Ian,

I've been playing with webob a lot lately and I gotta say that it's great! In all my past apps, I've been trying to model requests/responses in a nice Pythonic and RESTful way but never quite made it, so webob is just what I've been looking for.

I was wondering if there was any plans on letting webob Request objects make actual HTTP calls, returning webob Responses? I wrote a wrapper class to do it, but I think it'd make sense to be part of the Request object. If it's something you'd be open to, I'd like to contribute some code.



.Carlo</description>
		<content:encoded><![CDATA[<p>Hey Ian,</p>

<p>I&#8217;ve been playing with webob a lot lately and I gotta say that it&#8217;s great! In all my past apps, I&#8217;ve been trying to model requests/responses in a nice Pythonic and RESTful way but never quite made it, so webob is just what I&#8217;ve been looking for.</p>

<p>I was wondering if there was any plans on letting webob Request objects make actual HTTP calls, returning webob Responses? I wrote a wrapper class to do it, but I think it&#8217;d make sense to be part of the Request object. If it&#8217;s something you&#8217;d be open to, I&#8217;d like to contribute some code.</p>

<p>.Carlo</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Hoeppner</title>
		<link>http://blog.ianbicking.org/2008/04/17/webob-do-it-yourself-framework/#comment-16767</link>
		<dc:creator>Chris Hoeppner</dc:creator>
		<pubDate>Thu, 17 Apr 2008 09:32:13 +0000</pubDate>
		<guid>http://blog.ianbicking.org/2008/04/17/webob-do-it-yourself-framework/#comment-16767</guid>
		<description>This is the kind of stuff I've been looking for to fill my pythonic gap after learning the basics and before banging my head on the wall with anything too big **=)**</description>
		<content:encoded><![CDATA[<p>This is the kind of stuff I&#8217;ve been looking for to fill my pythonic gap after learning the basics and before banging my head on the wall with anything too big <strong>=)</strong></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roger Erens</title>
		<link>http://blog.ianbicking.org/2008/04/17/webob-do-it-yourself-framework/#comment-16764</link>
		<dc:creator>Roger Erens</dc:creator>
		<pubDate>Thu, 17 Apr 2008 08:40:20 +0000</pubDate>
		<guid>http://blog.ianbicking.org/2008/04/17/webob-do-it-yourself-framework/#comment-16764</guid>
		<description>Maybe you could add in the introduction some links on how to obtain and install WSGI and WebOb?</description>
		<content:encoded><![CDATA[<p>Maybe you could add in the introduction some links on how to obtain and install WSGI and WebOb?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Niki Spahiev</title>
		<link>http://blog.ianbicking.org/2008/04/17/webob-do-it-yourself-framework/#comment-16763</link>
		<dc:creator>Niki Spahiev</dc:creator>
		<pubDate>Thu, 17 Apr 2008 08:22:01 +0000</pubDate>
		<guid>http://blog.ianbicking.org/2008/04/17/webob-do-it-yourself-framework/#comment-16763</guid>
		<description>"The return value of __ import __ isn't very useful"

What's wrong with module returned by __ import __()?</description>
		<content:encoded><![CDATA[<p>&#8220;The return value of __ import __ isn&#8217;t very useful&#8221;</p>

<p>What&#8217;s wrong with module returned by __ import __()?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
