uhm... I may be wrong but.... request.restful accepts the args as a normal 
page, that is a application/x-www-form-urlencoded or a multipart/form-data 
. with curl would be something like curl -d name=blablabla -d 
otherparameter=blablabla http://theurl

On Friday, April 19, 2013 1:24:03 AM UTC+2, Brent Zeiben wrote:
>
> Hi,
> I am using a python script to organize some data and try to send it into 
> web2py via the @request.restful() api.  In the python script the text is 
> mainly input from a free form text field.  ( I believe some Unicode 
> characters are in there as well, however I remove everything that is ord 
> 128 and above.) 
>
> My problem arises when the text contains an ampersand (&) and probably 
> anything that isn't allowed in without the form encoding.  I thought python 
> json would escape the character some way but it does not seem to.
>
> I am trying to use json to transfer this data to web2py via the curl 
> command within python.
>
> Python Script
>
> import json
> import subprocess
>
>
> url = 'http://127.0.0.1:8000/testing/default/api/people.json'
> data = {"name":"My Full Name","biography":"Some simple information\n 
> about me & blah blah blah"}
>
>
> jsondata = json.dumps(data)
> result = subprocess.Popen(['curl',
>    '--user','username:password',
>    '-d',
>    jsondata,
>    url], stderr=subprocess.PIPE,stdout=subprocess.PIPE).communicate()[0]
>
>
>
>
>
> The web2py relevant parts
>
> db.py
>
> db.define_table('people',
>     Field('name','string',length=200,requires=IS_NOT_EMPTY()),
>     Field('biography','text'))
>
>
> default.py
>
>
> auth.settings.allow_basic_login=True
> @auth.requires_login()
> @request.restful()
> def api():
>     response.view = 'generic.' + request.extension
>     def POST(table_name,**vars):
>         if table_name == 'people':
>             return db.people.validate_and_insert(**vars)
>         else:
>             raise HTTP(400)
>     return locals()
>
>
> So when the python script sends the data web2py complains because of the 
> escaping issue with the & in the data.  I was doing some searching and 
> thought that changing the Content Type in the curl command to 
> application/json would help with this but then web2py has nothing in the 
> vars variable.
>
> Thank you,
> Brent
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to