On Tue, Nov 11, 2014 at 12:18 PM, Marc Aymerich <glicer...@gmail.com> wrote: > On Tue, Nov 11, 2014 at 5:43 PM, Larry Martell <larry.mart...@gmail.com> > wrote: >> On Tue, Nov 11, 2014 at 11:00 AM, Marc Aymerich <glicer...@gmail.com> wrote: >>> On Tue, Nov 11, 2014 at 4:48 PM, Larry Martell <larry.mart...@gmail.com> >>> wrote: >>>> >>>> I have a PHP app that I want to convert to django. But I want to do it >>>> stages. All the heavy lifting is in the PHP code, so first, I want to >>>> just use templates and views to generate the HTML, but still call the >>>> PHP code. Then later convert the PHP to python. >>>> >>>> My issue is that the PHP code expects to get all it's input from the >>>> REQUEST object and I've consumed that in the view. Is there any way I >>>> can somehow supply that to the PHP code? >>>> >>>> Is there some way python can communicate like curl ... it needs to >>>> send the request string in the body of a POST request to the URL that >>>> will route to the PHP script and get the output back. >>> >>> >>> Yes, >>> I supose you can extract the needed information from the django >>> Request object and call the php script passing the needed variables as >>> environment state. >>> >>> as a guideline you can do something like >>> >>> cmd = ( >>> 'REDIRECT_STATUS=200 ' >>> 'REQUEST_METHOD=GET ' >>> 'SCRIPT_FILENAME=htdocs/index.php ' >>> 'SCRIPT_NAME=/index.php ' >>> 'PATH_INFO=/ ' >>> 'SERVER_NAME=site.tld ' >>> 'SERVER_PROTOCOL=HTTP/1.1 ' >>> 'REQUEST_URI=/nl/page ' >>> 'HTTP_HOST=site.tld ' >>> '/usr/bin/php-cgi' >>> ) >>> subprocess.Popen(cmd, stdout=subprocess.PIPE) >> >> Thanks very much Marc. In the example, how is the request string passed in? > > > Yeah, a more complete example would be > > cmd = ( > 'REDIRECT_STATUS={status} ' > 'REQUEST_METHOD={method} ' > 'SCRIPT_FILENAME={file} ' > 'SCRIPT_NAME=/index.php ' > 'PATH_INFO={path} ' > 'SERVER_NAME=site.tld ' > 'SERVER_PROTOCOL=HTTP/1.1 ' > 'REQUEST_URI={path} ' > 'HTTP_HOST=site.tld ' > '/usr/bin/php-cgi' > ).format( > status=request.status, > method=request.method, > path=request.path, > file=my_php_path_mapper(request.path), > ) > > php = subprocess.Popen(cmd, stdout=subprocess.PIPE) > response, err = php.communicate() > if php.return_code != 0: > return ResponseError(content=err) > return Response(content=response) > > > still incomplete and mostly wrong, but good enough to illustrate the > main pattern :)
So I would put the contents of what I want in the request object in the file request.path? -- https://mail.python.org/mailman/listinfo/python-list