在odoo中使用controllers,继承http.controllers类 再写路由方法就完成了一个简单url映射,在网页中输入网址就可以正常访问了.
但是在代码中使用requests访问,结果一直报404,然而网页访问地址完全正常,查了下是没有指定数据库的原因,对比下代码和网页请求后台显示的请求信息,代码访问的werkzeug中缺失数据库一项,百度的文章都是说在conf中配置db_filter参数,结果并没有卵用,还是得靠谷歌,最后才发现这个参数应该是dbfilter
设置dbfilter有两种方式,填入参数是一个正则表达式,不过一般都是指定一个数据库,所以进行完全匹配要加上^$,保证匹配的准确度,
- 命令行启动时增加参数
--db-filter ^db_name$
- 配置文件写入参数
dbfilter = ^db_name$
指定数据库还有一种高级玩法,你就是按照你的域名进行指定数据库
- 按照子域名进行选择
dbfilter = ^%d$
在一个url中如www.abc.domain.com ,abc即使你的二级域名,此时会指定打开abc的数据库,如果你不进行完全匹配dbfilter = ^%d
则只会按正则匹配的结果可以列出abc开头的所有的数据库。注意如果你用127.0.0.1进行范围匹配规则会认为你的127为二级域名。 - 或者直接在conf文件中配置url对应db
# 域名_db = 数据库名
abc.odoo.com_db = abc
grey.odoo.com_db = grey
网友评论