For context, please see http://flask.pocoo.org/docs/config/ http://flask.pocoo.org/docs/api/#configuration
-- Thadeus On Thu, Jun 3, 2010 at 4:55 PM, Thadeus Burgess <[email protected]> wrote: > Exactly, We can copy flask and add the same configuration module which > implements everything and more of what you just described. > > -- > Thadeus > > > > > > On Thu, Jun 3, 2010 at 4:33 PM, Doug Warren <[email protected]> wrote: >> What I was thinking was something we use in the gaming world, called a >> console variable, you can specify their values in code, in a config >> file, through an in app interface, or through the command line. >> >> In web2py terms, I was thinking to make a global singleton that when >> first instantiated would scan sys.argv for things that looked like >> command arguments in the form of +Key Value or +Key=Value and then >> parse that to a global vs appliation level dict IE: >> +welcome.banner="Hello" vs +admin.banner "Hola" vs banner="hi" when an >> application queries the system, it would exec request.env.web2py_path >> + appliation which would look like: >> >> convars = ConVars() >> convars.database_string = "sqlite://file.sql" >> convars.debug = 1 >> convars.arbitrarysettinghere = 2 >> >> further dragging in new variables and overriding those that are on the >> command line. (This last distinction is open to debate as it could be >> considered easier to change a file than to change the command line.) >> There would also be a global level file to be read that can just >> define all known variables and their defaults. Finally a database >> table could be defined and a controller set that would represent the >> final most dynamic version of the config that can be updated in real >> time. >> >> A db or controller could then invoke it like >> convars = ConVars(request) >> if convars.debug: >> # Handle debug case >> >> >> On Thu, Jun 3, 2010 at 12:26 PM, Thadeus Burgess <[email protected]> >> wrote: >>> Or... we can copy flask and integrate a configuration module.. >>> >>> God I pray we never use something like >>> `0_local_config_pls_dont_pack_dont_commit.py` INTO web2py. web2py and >>> its naming conventions >.< >>> >>> -- >>> Thadeus >>> >>> >>> >>> >>> >>> On Thu, Jun 3, 2010 at 10:22 AM, Iceberg <[email protected]> wrote: >>>> I think Doug's puzzle deserves a more general solution. The >>>> requirement and challenge is: >>>> R1. The app's central source code should contain default setting. >>>> R2. The app's multiple deployment instances should be allowed to >>>> contain its local setting. >>>> R3. And after the next "hg update", the default setting in (R1) should >>>> not override the local setting in (R2). >>>> >>>> >>>> My solution contains two steps: >>>> Step1: Use myapp/models/0_config.py to store default setting, such as: >>>> MY_HOST = 'http://localhost' >>>> MY_EMAIL = '[email protected]' >>>> MY_PASSWORD = 'blah' >>>> MY_DB = 'sqlite://storage.sqlite' >>>> >>>> Step2: Use myapp/models/0_local_config_pls_dont_pack_dont_commit.py to >>>> store instance-wide local setting, such as: >>>> MY_HOST = 'http://myaccount.my_vps_provider.com' >>>> MY_EMAIL = 'my_real_acco...@for_example_hotmail.com' >>>> MY_PASSWORD = 'i_will_never_share_it' >>>> MY_DB = 'mysql://10.1.1.1.....' >>>> >>>> >>>> To reach this goal, two things need to be adjusted in web2py source >>>> code: >>>> >>>> Thing1: add 0_local_config_pls_dont_pack_dont_commit.py into / >>>> web2py/.hgignore >>>> >>>> Thing2: adjust the admin's pack code, to NOT pack the new >>>> 0_local_config_pls_dont_pack_dont_commit.py >>>> >>>> On Jun3, 10:23pm, mdipierro <[email protected]> wrote: >>>>> they can see request.env.host_name and you can use hostnames like <bla >>>>> bla bla>.yourdomain.com >>>>> >>>>> you can symlink different apps to the same one so you have one but it >>>>> will see different request.application depending on the request >>>>> >>>>> On Jun 3, 8:50 am, Doug Warren <[email protected]> wrote: >>>>> >>>>> >>>>> >>>>> > Is there a preferred way to handle multiple instances of the same >>>>> > application installed on the same machine? Say for instance is >>>>> > there's 3 dev environments and 2 staging environments on one server >>>>> > pointing at different databases? Is there a preferred way of getting >>>>> > the configuration to each unique app? IE: Can a view/db/controller >>>>> > see a parameter placed in either options_std or parameters_PORTNO? I >>>>> > guess what I'm really after is a way to specify at a minimum the >>>>> > database that an application can point at but have it contained >>>>> > outside the application itself. >>>>> >>>>> > IE: >>>>> > foo.w2p is uploaded >>>>> > foo.w2p is installed as foo >>>>> > foo.w2p is installed as foo-dev >>>>> > foo.w2p is installed as foo-dev2 >>>>> > foo.w2p is installed as foo-stag >>>>> >>>>> > Without having to edit db.py in each of those environments I'd like to >>>>> > have a way of saying foo-stag should use this connect string, and have >>>>> > it survive the next time I upload a new foo.w2p and overwrite the one >>>>> > that's there. >>>> >>> >> >

