web2py根据环境进行配置
web2py是否支持根据不同环境(比如开发环境、测试环境、生产环境等)进行配置?这类似于Grails和Ruby on Rails的做法。
我看过官方书籍,但没找到相关的信息。
1 个回答
4
web2py的开发者认为这种做法并不好。
他们不认为开发和生产环境之间应该有明显的区别。举个例子,如果一个应用程序有bug,这个bug会被记录下来,但不会展示给用户,只会给管理员看到。
而且,web2py根本没有配置文件,因为应用程序应该是可移植的,不需要去修改设置。
不过,你可以以比Rails或Django更复杂的方式来管理不同的环境。这是因为模型不是在每次请求时导入的,而是直接执行的。你可以在运行时添加自己的条件来检测当前的环境。例如:
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://....')
你可以看到如何将这个概念扩展到更复杂的条件。当然,你也可以把settings['development']=True或False设为常量,这就相当于Rails的做法。