I’m trying to get the URL that has been requested in Python without using a web framework.
For example, on a page (let’s say /main/index.html), the user clicks on a URL to go to /main/foo/bar (/foo/bar doesn’t exist). Apache (with mod_wsgi) then redirects the user to a PHP script at /main/, which then gets the url and searches MySQL for any matching fields. Then the rest of the field is returned. This helped in PHP:
$_SERVER["REQUEST_URI"];
I’d rather not use PHP since it’s becoming increasingly difficult to maintain the PHP code whilst the database keeps changing in structure.
I’m pretty sure there’s a better way altogether and any mention would be greatly appreciated. For the sake of relevancy, is this even possible (to get the requested URL in Python)? Should I just use a framework, although it seems quite simple?
Thanks in advance,
Jamie
Note: I don’t want to use GET for security purposes.
Unlike PHP, Python is a general purpose language and doesn’t have this built-in.
The way you can gather this information depends on the deployment solution:
But you will encouter much more problems: session hanling, url management, cookies, and even juste simple POST/GET parsing. All of this need to be done manually if you don’t use a framework.
Now, if you feel like a framework is overkill (but really, incredible tools like Django are worth it), you can use a micro framework like bottle.
Microframeworks will typically make this heavy lifting for you, but without the complicated setup or the additional advanced features. Bottle has actually zero setup an is a one file lib.
Hello word with bottle:
request.pathcontains what you want, and if you visithttp://127.0.0.1:8080/hello/you, you will get: