在使用oauth2.0时,在允许我的web应用程序通过Google登录访问directoryapi之后,Google将我重定向回我的web应用程序页面,并在URL中附加一个授权代码。在
像这样->>>;
http://www.mydomain:8069/?code=4%2FZ6tHz_FoteiCGYMfbADu3_1.AjMpYP1TpHAVXE-sT2ZLcbTj9a4FiwI&db=training_crm#menu_id=108&action=101
现在我需要从URL获取代码,以便交换访问令牌。如何在URL中使用python代码获取这个code参数??在
(**正在使用OpenERP)
Tags:
我相信您所追求的是一种从查询字符串获取数据的方法。 如何访问它取决于web服务器与python模块的接口方式。它通常存储在一些环境变量中,web服务器将这些变量作为来自客户端的HTTP请求的一部分传递给您的应用程序。在
看看https://doc.openerp.com/trunk/server/routing/,OpenERP似乎为url路由提供了一些帮助类和一个请求包装器。在
我建议使用openerp.http.HttpRequest. 在
编辑:Reading over this document,OpenERP似乎为您提供了他们所称的“controller”基类,其方法可用于url路由。(也就是说,根据url来决定向客户端呈现什么内容)
如果文件夹结构是这样的:
然后可以在my中定义这些方法_控制器.py文件。这是我的一个例子_控制器.py模块(来自上述文档):
^{pr2}$此类继承自OpenERP.http.Controller类提供“controller”的所有基方法和属性。每个方法都有一个装饰器('@http.route,它告诉基类此方法用于url路由。在
这是来自文档:
所以在这个例子中,你的web应用程序将路由www.mysite.com/my_url/some_html网站指向在html标题标记中显示“这是一个测试”的页面。在
但您希望捕获查询字符串(“?”后面的变量在url中)。根据相同的文档,这也可以用controller类来完成。在您的问题中提供的url中,查询字符串由变量“code”和“db”以及它们对应的变量组成。这种使用HTTP在两台机器之间传输数据的方法称为GET方法。在
要使服务器使用这些变量执行某些操作,您可以再次使用controller类。在每个@http_route方法中,可以将http参数作为方法的命名参数。例如:
然后这个方法将捕捉您在问题中给出的url的参数,并能够使用它做一些事情。在
希望这是有用的。在
相关问题 更多 >
编程相关推荐