return dict(db.someDatabase.insert(**data)) #or return dict(db.someDatabase.validate_and_insert(**data))
On Monday, 10 June 2013 15:58:16 UTC-5, Philipp Müller wrote: > > So far, this seems to work fine. I struggle though when trying to write > this data in my database. > > I tried doing: > data = sj.loads(request.body.read()) > #and later > return dict(db.someDatabase.insert(data)) > #or > return dict(db.someDatabase.validate_and_insert(data)) > > for all of which I got the error message: > insert() takes exactly 1 argument (2 given) > > Any ideas on how to solve this would be highly appreciated. > > Regards, > Philipp > Am Mittwoch, 24. Oktober 2012 11:23:09 UTC+2 schrieb Niphlod: >> >> For future users reading this thread... this means that the Iphone sent >> the JSON object POSTing to the page directly in the data stream, without >> "the usual" form encoding. For that, you can access what has been posted >> "in raw format" with request.body.read(). >> >> PS: Keep the code small >> >> import gluon.contrib.simplejson as sj #just if you don't have >> simplejson in python path >> #in that case "import simplejson as sj" works >> data = sj.loads(request.body.read()) >> >> >> >> On Wednesday, October 24, 2012 9:22:13 AM UTC+2, Mchurch wrote: >>> >>> import gluon.contrib.simplejson >>> data = gluon.contrib.simplejson.loads(request.body.read()) >>> >>> That was the trick.... >>> Thank You Niphlod, You put me in the right direction. >>> IOS + WEB2PY = beautiful combination!! >>> Mchurch >>> Il giorno mercoledì 24 ottobre 2012 09:01:40 UTC+2, Mchurch ha scritto: >>>> >>>> Hi Niphlod, did You hope to be free of me so soon? :) >>>> Looking at web2py errors, if i make a post request values are empty >>>> (not if i make a GET, but the final result is the same). >>>> Using "CHARLES, web debugging proxy" i can see that data are dispatched >>>> with correct values and correct Content-Type (application/Json). >>>> Im doing my best.... >>>> >>>> >>>> >>>> >>>> >>>> POST /Json/default/ricevo HTTP/1.1 >>>> Host 127.0.0.1:8000 Accept */* Accept-Encoding gzip Content-Length >>>> 36 Accept-Language en, fr, de, ja, nl, it, es, pt, pt-PT, da, fi, nb, >>>> sv, ko, zh-Hans, zh-Hant, ru, pl, tr, uk, ar, hr, cs, el, he, ro, sk, th, >>>> id, ms, en-GB, ca, hu, vi, en-us;q=0.8 Content-Type application/json; >>>> charset=utf-8 Connection keep-alive User-Agent mirko.json/1.0 >>>> (unknown, iPhone OS 6.0, iPhone Simulator, Scale/1.000000) >>>> >>>> >>>> <type 'exceptions.TypeError'>(expected string or buffer) >>>>> >>>>> inspect attributes >>>>> >>>>> - >>>>> >>>>> *Function argument list >>>>> *(self=<json.decoder.JSONDecoder object>, s=<Storage {}>, >>>>> _w=<built-in method match of _sre.SRE_Pattern object>) >>>>> >>>>> *Code listing >>>>> * >>>>> *Variables* >>>>> - >>>>> - >>>>> >>>>> *Context* >>>>> >>>>> locals >>>>> >>>>> >>>>> >>>>> request >>>>> >>>>> >>>>> >>>>> session >>>>> >>>>> >>>>> >>>>> response >>>>> >>>>> locals >>>>> >>>>> *s* >>>>> >>>>> : >>>>> >>>>> <Storage {}> >>>>> >>>>> *self* >>>>> >>>>> : >>>>> >>>>> <json.decoder.JSONDecoder object> >>>>> >>>>> request >>>>> >>>>> *ajax* >>>>> >>>>> : >>>>> >>>>> False >>>>> >>>>> *application* >>>>> >>>>> : >>>>> >>>>> Json >>>>> >>>>> *args* >>>>> >>>>> : >>>>> >>>>> >>>>> *body* >>>>> >>>>> : >>>>> >>>>> <open file '<fdopen>', mode 'w+b' at 0x11c143c00> >>>>> >>>>> *client* >>>>> >>>>> : >>>>> >>>>> 127.0.0.1 >>>>> >>>>> *controller* >>>>> >>>>> : >>>>> >>>>> default >>>>> >>>>> *cookies* >>>>> >>>>> : >>>>> >>>>> >>>>> *env* >>>>> >>>>> : >>>>> >>>>> *app_folders* >>>>> >>>>> : >>>>> >>>>> set(['/Users/marcoMchurch/Sites/web2py/applications/Json/', >>>>> '/Users/marcoMchurch/Sites/web2py/applications/welcome/', >>>>> '/Users/marcoMchurch/Sites/web2py/applications/admin/']) >>>>> >>>>> *applications_parent* >>>>> >>>>> : >>>>> >>>>> /.…../web2py >>>>> >>>>> *cmd_args* >>>>> >>>>> : >>>>> >>>>> >>>>> *cmd_options* >>>>> >>>>> : >>>>> >>>>> <Values at 0x1104a53f8: {'verbose': False, 'ip': '127.0.0.1', >>>>> 'shutdown_timeout': 5, 'taskbar': False, 'nocron': False, 'pid_filename': >>>>> 'httpserver.pid', 'maxthreads': None, 'softcron': False, 'server_name': >>>>> 'marcos-', 'bpython': False, 'nogui': False, 'port': 8000, 'extcron': >>>>> False, 'debuglevel': 30, 'test': None, 'folder': >>>>> '/Users/marcoMchurch/Sites/web2py', 'config': '', 'import_models': False, >>>>> 'winservice': '', 'shell': None, 'run': '', 'log_filename': >>>>> 'httpserver.log', 'args': [''], 'socket_timeout': 1, >>>>> 'ssl_ca_certificate': >>>>> None, 'scheduler': None, 'profiler_filename': None, 'ssl_private_key': >>>>> '', >>>>> 'password': '<ask>', 'request_queue_size': 5, 'ssl_certificate': '', >>>>> 'cronjob': False, 'numthreads': None, 'quiet': False, 'interfaces': None, >>>>> 'minthreads': None, 'timeout': 10, 'plain': False, 'nobanner': False}> >>>>> >>>>> *content_length* >>>>> >>>>> : >>>>> >>>>> 36 >>>>> >>>>> *content_type* >>>>> >>>>> : >>>>> >>>>> application/json; charset=utf-8 >>>>> >>>>> *db_sessions* >>>>> >>>>> : >>>>> >>>>> set([]) >>>>> >>>>> *debugging* >>>>> >>>>> : >>>>> >>>>> False >>>>> >>>>> *gluon_parent* >>>>> >>>>> : >>>>> >>>>> ….web2py >>>>> >>>>> *http_accept* >>>>> >>>>> : >>>>> >>>>> */* >>>>> >>>>> *http_accept_encoding* >>>>> >>>>> : >>>>> >>>>> gzip >>>>> >>>>> *http_accept_language* >>>>> >>>>> : >>>>> >>>>> en, fr, de, ja, nl, it, es, pt, pt-PT, da, fi, nb, sv, ko, zh-Hans, >>>>> zh-Hant, ru, pl, tr, uk, ar, hr, cs, el, he, ro, sk, th, id, ms, en-GB, >>>>> ca, >>>>> hu, vi, en-us;q=0.8 >>>>> >>>>> *http_connection* >>>>> >>>>> : >>>>> >>>>> keep-alive >>>>> >>>>> *http_content_length* >>>>> >>>>> : >>>>> >>>>> 36 >>>>> >>>>> *http_content_type* >>>>> >>>>> : >>>>> >>>>> application/json; charset=utf-8 >>>>> >>>>> *http_host* >>>>> >>>>> : >>>>> >>>>> 127.0.0.1:8000 >>>>> >>>>> *http_user_agent* >>>>> >>>>> : >>>>> >>>>> mirko.json/1.0 (unknown, iPhone OS 6.0, iPhone Simulator, >>>>> Scale/1.000000) >>>>> >>>>> *is_jython* >>>>> >>>>> : >>>>> >>>>> False >>>>> >>>>> *is_pypy* >>>>> >>>>> : >>>>> >>>>> False >>>>> >>>>> *path_info* >>>>> >>>>> : >>>>> >>>>> /Json/default/ricevo >>>>> >>>>> *query_string* >>>>> >>>>> : >>>>> >>>>> >>>>> *remote_addr* >>>>> >>>>> : >>>>> >>>>> 127.0.0.1 >>>>> >>>>> *remote_port* >>>>> >>>>> : >>>>> >>>>> 60150 >>>>> >>>>> *request_method* >>>>> >>>>> : >>>>> >>>>> POST >>>>> >>>>> *script_name* >>>>> >>>>> : >>>>> >>>>> >>>>> *server_name* >>>>> >>>>> : >>>>> >>>>> marcos-…… >>>>> >>>>> *server_port* >>>>> >>>>> : >>>>> >>>>> 8000 >>>>> >>>>> *server_protocol* >>>>> >>>>> : >>>>> >>>>> HTTP/1.1 >>>>> >>>>> *server_software* >>>>> >>>>> : >>>>> >>>>> Rocket 1.2.4 >>>>> >>>>> *web2py_crontype* >>>>> >>>>> : >>>>> >>>>> hard >>>>> >>>>> *web2py_path* >>>>> >>>>> : >>>>> >>>>> /Users/marcoMchurch/Sites/web2py >>>>> >>>>> *web2py_version* >>>>> >>>>> : >>>>> >>>>> 1 >>>>> >>>>> 99 >>>>> >>>>> 4 >>>>> >>>>> datetime.datetime(2011, 12, 14, 14, 46, 14) >>>>> >>>>> stable >>>>> >>>>> *wsgi_errors* >>>>> >>>>> : >>>>> >>>>> <open file '<stderr>', mode 'w' at 0x10f7b2270> >>>>> >>>>> *wsgi_file_wrapper* >>>>> >>>>> : >>>>> >>>>> <class wsgiref.util.FileWrapper at 0x1103c1328> >>>>> >>>>> *wsgi_input* >>>>> >>>>> : >>>>> >>>>> <socket._fileobject object at 0x117971950> >>>>> >>>>> *wsgi_multiprocess* >>>>> >>>>> : >>>>> >>>>> False >>>>> >>>>> *wsgi_multithread* >>>>> >>>>> : >>>>> >>>>> True >>>>> >>>>> *wsgi_run_once* >>>>> >>>>> : >>>>> >>>>> False >>>>> >>>>> *wsgi_url_scheme* >>>>> >>>>> : >>>>> >>>>> http >>>>> >>>>> *wsgi_version* >>>>> >>>>> : >>>>> >>>>> 1 >>>>> >>>>> 0 >>>>> >>>>> *extension* >>>>> >>>>> : >>>>> >>>>> html >>>>> >>>>> *folder* >>>>> >>>>> : >>>>> >>>>> /Users/marcoMchurch/Sites/web2py/applications/Json/ >>>>> >>>>> *function* >>>>> >>>>> : >>>>> >>>>> ricevo >>>>> >>>>> *get_vars* >>>>> >>>>> : >>>>> >>>>> >>>>> *global_settings* >>>>> >>>>> : >>>>> >>>>> *app_folders* >>>>> >>>>> : >>>>> >>>>> set(['/Users/marcoMchurch/Sites/web2py/applications/Json/', >>>>> '/Users/marcoMchurch/Sites/web2py/applications/welcome/', >>>>> '/Users/marcoMchurch/Sites/web2py/applications/admin/']) >>>>> >>>>> *applications_parent* >>>>> >>>>> : >>>>> >>>>> /Users/marcoMchurch/Sites/web2py >>>>> >>>>> *cmd_args* >>>>> >>>>> : >>>>> >>>>> >>>>> *cmd_options* >>>>> >>>>> : >>>>> >>>>> <Values at 0x1104a53f8: {'verbose': False, 'ip': '127.0.0.1', >>>>> 'shutdown_timeout': 5, 'taskbar': False, 'nocron': False, 'pid_filename': >>>>> 'httpserver.pid', 'maxthreads': None, 'softcron': False, 'server_name': ' >>>>> marcos-imac.homenet.telecomitalia.it', 'bpython': False, 'nogui': >>>>> False, 'port': 8000, 'extcron': False, 'debuglevel': 30, 'test': None, >>>>> 'folder': '/Users/marcoMchurch/Sites/web2py', 'config': '', >>>>> 'import_models': False, 'winservice': '', 'shell': None, 'run': '', >>>>> 'log_filename': 'httpserver.log', 'args': [''], 'socket_timeout': 1, >>>>> 'ssl_ca_certificate': None, 'scheduler': None, 'profiler_filename': None, >>>>> 'ssl_private_key': '', 'password': '<ask>', 'request_queue_size': 5, >>>>> 'ssl_certificate': '', 'cronjob': False, 'numthreads': None, 'quiet': >>>>> False, 'interfaces': None, 'minthreads': None, 'timeout': 10, 'plain': >>>>> False, 'nobanner': False}> >>>>> >>>>> *db_sessions* >>>>> >>>>> : >>>>> >>>>> set([]) >>>>> >>>>> *debugging* >>>>> >>>>> : >>>>> >>>>> False >>>>> >>>>> *gluon_parent* >>>>> >>>>> : >>>>> >>>>> /Users/marcoMchurch/Sites/web2py >>>>> >>>>> *is_jython* >>>>> >>>>> : >>>>> >>>>> False >>>>> >>>>> *is_pypy* >>>>> >>>>> : >>>>> >>>>> False >>>>> >>>>> *web2py_crontype* >>>>> >>>>> : >>>>> >>>>> hard >>>>> >>>>> *web2py_version* >>>>> >>>>> : >>>>> >>>>> 1 >>>>> >>>>> 99 >>>>> >>>>> 4 >>>>> >>>>> datetime.datetime(2011, 12, 14, 14, 46, 14) >>>>> >>>>> stable >>>>> >>>>> *is_https* >>>>> >>>>> : >>>>> >>>>> False >>>>> >>>>> *is_local* >>>>> >>>>> : >>>>> >>>>> True >>>>> >>>>> *is_restful* >>>>> >>>>> : >>>>> >>>>> False >>>>> >>>>> *now* >>>>> >>>>> : >>>>> >>>>> datetime.datetime(2012, 10, 23, 23, 37, 12, 447022) >>>>> >>>>> *post_vars* >>>>> >>>>> : >>>>> >>>>> >>>>> *url* >>>>> >>>>> : >>>>> >>>>> /Json/default/ricevo >>>>> >>>>> *utcnow* >>>>> >>>>> : >>>>> >>>>> datetime.datetime(2012, 10, 23, 21, 37, 12, 447035) >>>>> >>>>> *uuid* >>>>> >>>>> : >>>>> >>>>> Json/127.0.0.1.2012-10-23.23-37-12.35f491ef-469f-421f-93e9-0cebff13da2f >>>>> >>>>> *vars* >>>>> >>>>> : >>>>> >>>>> >>>>> *wsgi* >>>>> >>>>> : >>>>> >>>>> *environ* >>>>> >>>>> : >>>>> >>>>> *CONTENT_LENGTH* >>>>> >>>>> : >>>>> >>>>> 36 >>>>> >>>>> *CONTENT_TYPE* >>>>> >>>>> : >>>>> >>>>> application/json; charset=utf-8 >>>>> >>>>> *HTTP_ACCEPT* >>>>> >>>>> : >>>>> >>>>> */* >>>>> >>>>> *HTTP_ACCEPT_ENCODING* >>>>> >>>>> : >>>>> >>>>> gzip >>>>> >>>>> *HTTP_ACCEPT_LANGUAGE* >>>>> >>>>> : >>>>> >>>>> en, fr, de, ja, nl, it, es, pt, pt-PT, da, fi, nb, sv, ko, zh-Hans, >>>>> zh-Hant, ru, pl, tr, uk, ar, hr, cs, el, he, ro, sk, th, id, ms, en-GB, >>>>> ca, >>>>> hu, vi, en-us;q=0.8 >>>>> >>>>> *HTTP_CONNECTION* >>>>> >>>>> : >>>>> >>>>> keep-alive >>>>> >>>>> *HTTP_CONTENT_LENGTH* >>>>> >>>>> : >>>>> >>>>> 36 >>>>> >>>>> *HTTP_CONTENT_TYPE* >>>>> >>>>> : >>>>> >>>>> application/json; charset=utf-8 >>>>> >>>>> *HTTP_HOST* >>>>> >>>>> : >>>>> >>>>> 127.0.0.1:8000 >>>>> >>>>> *HTTP_USER_AGENT* >>>>> >>>>> : >>>>> >>>>> mirko.json/1.0 (unknown, iPhone OS 6.0, iPhone Simulator, >>>>> Scale/1.000000) >>>>> >>>>> *PATH_INFO* >>>>> >>>>> : >>>>> >>>>> /Json/default/ricevo >>>>> >>>>> *QUERY_STRING* >>>>> >>>>> : >>>>> >>>>> >>>>> *REMOTE_ADDR* >>>>> >>>>> : >>>>> >>>>> 127.0.0.1 >>>>> >>>>> *REMOTE_PORT* >>>>> >>>>> : >>>>> >>>>> 60150 >>>>> >>>>> *REQUEST_METHOD* >>>>> >>>>> : >>>>> >>>>> POST >>>>> >>>>> *SCRIPT_NAME* >>>>> >>>>> : >>>>> >>>>> >>>>> *SERVER_NAME* >>>>> >>>>> : >>>>> >>>>> marcos-…… >>>>> >>>>> *SERVER_PORT* >>>>> >>>>> : >>>>> >>>>> 8000 >>>>> >>>>> *SERVER_PROTOCOL* >>>>> >>>>> : >>>>> >>>>> HTTP/1.1 >>>>> >>>>> *SERVER_SOFTWARE* >>>>> >>>>> : >>>>> >>>>> Rocket 1.2.4 >>>>> >>>>> *wsgi.errors* >>>>> >>>>> : >>>>> >>>>> <open file '<stderr>', mode 'w' at 0x10f7b2270> >>>>> >>>>> *wsgi.file_wrapper* >>>>> >>>>> : >>>>> >>>>> <class wsgiref.util.FileWrapper at 0x1103c1328> >>>>> >>>>> *wsgi.input* >>>>> >>>>> : >>>>> >>>>> <open file '<fdopen>', mode 'w+b' at 0x11c143c00> >>>>> >>>>> *wsgi.multiprocess* >>>>> >>>>> : >>>>> >>>>> False >>>>> >>>>> *wsgi.multithread* >>>>> >>>>> : >>>>> >>>>> True >>>>> >>>>> *wsgi.run_once* >>>>> >>>>> : >>>>> >>>>> False >>>>> >>>>> *wsgi.url_scheme* >>>>> >>>>> : >>>>> >>>>> http >>>>> >>>>> *wsgi.version* >>>>> >>>>> : >>>>> >>>>> 1 >>>>> >>>>> IN FILE: >>>>> /USERS/MARCOMchurch/SITES/WEB2PY/APPLICATIONS/JSON/CONTROLLERS/DEFAULT.PY >>>>> >>>>> 1. >>>>> >>>>> 2. >>>>> >>>>> 3. >>>>> >>>>> 4. >>>>> >>>>> 5. >>>>> >>>>> 6. >>>>> >>>>> 7. >>>>> >>>>> 8. >>>>> >>>>> 9. >>>>> >>>>> 10. >>>>> >>>>> 11. >>>>> >>>>> 12. >>>>> >>>>> 13. >>>>> >>>>> 14. >>>>> >>>>> 15. >>>>> >>>>> 16. >>>>> >>>>> 17. >>>>> >>>>> 18. >>>>> >>>>> >>>>> *# -*- coding: utf-8 -*-* >>>>> >>>>> *# this file is released under public domain and you can use without >>>>> limitations* >>>>> >>>>> ** >>>>> >>>>> * >>>>> ######################################################################### >>>>> * >>>>> >>>>> *## This is a samples controller* >>>>> >>>>> *## - index is the default action of any application* >>>>> >>>>> *## - user is required for authentication and authorization* >>>>> >>>>> *## - download is for downloading files uploaded in the db (does >>>>> streaming)* >>>>> >>>>> *## - call exposes all registered services (none by default)* >>>>> >>>>> * >>>>> ######################################################################### >>>>> * >>>>> >>>>> *……* >>>>> >>>>> *def *ricevo*():* >>>>> >>>>> * **from *json *import *loads*, *dumps >>>>> >>>>> data *= >>>>> *loads*(*request<http://127.0.0.1:8000/examples/global/vars/request> >>>>> *.*vars*)* >>>>> >>>>> * **print *data >>>>> >>>>> *print *request<http://127.0.0.1:8000/examples/global/vars/request> >>>>> *.*vars*.*body*.*read*()* >>>>> >>>>> * **print *request<http://127.0.0.1:8000/examples/global/vars/request> >>>>> *.*vars >>>>> >>>>> *return *dumps*(*data*)* >>>>> >>>> >>>> Il giorno martedì 23 ottobre 2012 17:55:34 UTC+2, Niphlod ha scritto: >>>>> >>>>> almost dinner time here.... :P >>>>> >>>>> On Tuesday, October 23, 2012 5:44:45 PM UTC+2, Mchurch wrote: >>>>>> >>>>>> I'll try, thanks. >>>>>> Ps. Did You eat some snakes for breakfast?.... >>>>>> :) >>>>> >>>>> -- --- 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 web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.