[Web-SIG] Random thoughts

Ian Bicking ianb at colorstudy.com
Mon Nov 3 13:39:59 EST 2003


On Nov 3, 2003, at 12:23 PM, John J Lee wrote:
>> They could be proper dictionary-like objects.  Though if they aren't
>> real dictionaries, I suppose we would have:
>>
>> request.fields, request.fields.post, request.fields.query, each of
>> which implements a dictionary interface.
> [...]
>
> Why does the dictionary-ness of these objects force moving them from
> attributes of request into attributes of a fields object?  I don't like
> __getitem__, but I like breaking the "law of demeter" less.  If people
> prefer to avoid __getitem__, they could just be methods: .formdata(),
> .querydata(), .postdata() (or use the new descriptor stuff?  I know
> nothing about that...).

Sorry, I mixed that up a bit, I should have said: if form values are 
dictionaries (*not* just dictionary-like) then the request object has 
to have three objects for the three options (query, post, and mixed).  
If we use a dict subclass (or just implement __getitem__ and frields) 
then "fields" (or "formdata" or whatever) could have the .post and 
.query attributes (which obviously aren't attributes of a normal 
dictionary).

If we want to add .getlist() and other options as well (which I think 
we do), we've already given up strict dictionariness.  Personally I 
like fields.post and fields.query more than having three separate 
attributes of request.

--
Ian Bicking | ianb at colorstudy.com | http://blog.ianbicking.org




More information about the Web-SIG mailing list