搜尋

首頁  >  問答  >  主體

python - Tornado(或者Flask)如何配置多人开发的settings文件?

要实现的效果类似运行应用时:

python app.py --settings=zhangsan
python app.py --settings=lisi

不同的人加载不同的数据库配置,缓存配置等等。

ringa_leeringa_lee2821 天前706

全部回覆(2)我來回復

  • 怪我咯

    怪我咯2017-04-18 10:03:17

    自問自答:使用tornado的options和define介面讀取一套設定文件,大致程式碼如下:

    tornado入口文件main.py

    define('port', default=9000, help='run on the given port', type=int)
    define('debug', default=True, help='debug mode', type=bool)
    define('settings', default=None, help='tornado settings file', type=str)
    define('config', default=None, help='tornado config file', type=dict)
    options.parse_command_line()
    if options.settings:
        options.parse_config_file('settings/%s/app_config.py'%(options.settings))
    else:
        raise Exception("You must add a xxx.py at settings/ folder, then run: 'python app.py --settings=user'")

    app_config.py 中的程式碼如下:

    from tornado.options import options
    import importlib
    db_config = importlib.import_module('settings.%s.db_config'%options.settings)
    
    options.config = {
        'MONGO': db_config.MONGO,
        'SETTINGS': {},
    }

    運行程式碼時

    python main.py --settings=xxx

    回覆
    0
  • 阿神

    阿神2017-04-18 10:03:17

    留一套標準的資料庫和快取設定檔不要動。

    然後每人都有自己的對應的資料庫和快取配置文件,並把這些文件ignore掉(我假設你用的是git做版本管理)。

    這樣不耽誤每個人的開發,也不影響以後的產品發表。

    回覆
    0
  • 取消回覆