我一直在使用推荐的方法在web2py中为每个环境设置数据库连接:
settings = dict()
if request.env.http_host == 'http://127.0.0.1:8000'
settings['development']=True
else:
settings['development']=False
if settings['development']:
db = DAL('sqlite://....')
else:
db = DAL('mysql://....')
在非开发环境中使用调度程序时,数据库连接会因使用端口8000配置而失败。
类似地,当尝试运行脚本时,我得到相同的错误。这是我的最后一次尝试:
python web2py.py -S app -M -N -R -L options.py -P 443 applications/testscript.py
"Can't connect to MySQL server on '127.0.0.1' (10061)"�
是否有建议的方法为每个将在Web访问之外应用的环境注入配置?
答案 0 :(得分:0)
暂时在页面上插入以下内容:
{{=response.toolbar()}}
然后在开发和生产中,单击“请求”按钮并检查request.env
中的值以识别两个环境之间不同的内容。一些可能的候选人是“server_signature”,“server_software”和“web2py_path”。
答案 1 :(得分:0)
我有同样的担忧,我首先是request.env.server_name
。
但是:
request.env.cmd_options.server_name
替换,但首先,这个服务器不存在,其次,在启动之后,调度程序不再找到它...... 然后我发现了这个Q / A并试图按照Anthony的建议解决它:
最后,“web2py_path”完成了这项工作,即使对我来说,针对完整安装路径进行测试并不是一个“干净”的解决方案......
if request.env.web2py_path == '/your/path/on/server/to/web2py'
settings['development']=False
else:
settings['development']=True
现在它应该有效,但我陷入了这个问题:Can not run the web2py scheduler using postgresql database