Python 2.7 是否可以在控制器中使用ORM方法而不登录Odoo?

Python 2.7 是否可以在控制器中使用ORM方法而不登录Odoo?,python-2.7,controller,openerp,odoo,odoo-8,Python 2.7,Controller,Openerp,Odoo,Odoo 8,我给用户发送电子邮件,里面有链接(到控制器)。该链接是下一个链接:。为了接收变量hello,我创建了下一个控制器: class mail_controller(http.Controller): @http.route('/my-controller', type='http') def index(self, **args): my_variable = args.get('my_variable', False) if not my_varia

我给用户发送电子邮件,里面有链接(到控制器)。该链接是下一个链接:。为了接收变量hello,我创建了下一个控制器:

class mail_controller(http.Controller):
    @http.route('/my-controller', type='http')
    def index(self, **args):
        my_variable = args.get('my_variable', False)
        if not my_variable:
            return 'Invalid URL'
        return '<h1>This is the received variable:</h1>' + str(my_variable)
我想知道是否有任何方法可以避免使用ORM方法(或在Odoo模型中声明的其他方法)的这种连接。首先,因为纯文本形式的用户和密码不太安全,其次,连接的参数很容易更改(例如,如果我在其他数据库中安装了模块,或者如果用户修改了密码)


有人能帮我吗?还有其他更好的控制器吗?

只需使用
http.request.env
,这与您可能从模型方法中了解的
self.env
相同

您可以执行类似于
your_objects=http.request.env['your.model'].search([])
的操作,以及通常使用ODOORM执行的所有其他操作。只需将
self.env
替换为
http.request.env
即可


您可以阅读有关http.request的更多信息

Great-answer@Ludwik!非常感谢你!
connection = openerplib.get_connection(hostname='localhost',
                                       database='my_database',
                                       login='my_user',
                                       password='my_pwd', port=8069)