我正在尝试获取不使用Web框架的Python中已请求的URL。
例如,在页面上(假设/main/index.html),用户单击URL转到/ main / foo / bar(/ foo / bar不存在)。然后,Apache(带有mod_wsgi)将用户重定向到/ main /处的PHP脚本,然后获取URL并在MySQL中搜索任何匹配的字段。然后返回该字段的其余部分。这在PHP中有所帮助:
$_SERVER["REQUEST_URI"]; 我宁愿不使用PHP,因为在数据库结构不断变化的同时,维护PHP代码变得越来越困难。
我敢肯定,总有一种更好的方法,任何提及将不胜感激。出于相关性考虑,这是否有可能(在Python中获取请求的URL)?尽管看起来很简单,但我应该只使用框架吗?
提前致谢,
杰米
注意:我不想出于安全目的使用GET。
与PHP不同,Python是一种通用语言,没有内置的语言。
收集此信息的方式取决于部署解决方案:
CGI(主要是使用mod_python的Apache,已弃用):请参阅@Antti Haapala解决方案 WSGI(大多数其他部署解决方案):请参阅@gurney alex解决方案 但是您会遇到更多问题:会话处理,URL管理,Cookie,甚至只是简单的POST / GET解析。如果您不使用框架,则所有这些操作都需要手动完成。
现在,如果您觉得框架过于强大(但实际上,像Django这样令人难以置信的工具是值得的),则可以使用bottle这样的微型框架。
Microframeworks通常会为您带来繁重的工作,但无需复杂的设置或其他高级功能。瓶子实际上具有零设置,并且是一个文件库。
你好词与瓶:
from bottle import route, run, request
@route('/hello/:name')
def index(name='World'):
return '<b>Hello %s! You are at %s</b>' % (name, request.path)
run(host='localhost', port=8080)
request.path包含您想要的内容,如果您访问http://127.0.0.1:8080/hello/you,您将获得:
Hello you! You are at /hello/you
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。