2016-02-16 4 views
-1

Я управляю администрацией приложений, используя разные модули для каждого приложения. У меня есть файл конфигурации, который имеет общие свойства, включая учетные данные для каждого приложения. И отдельные модули с функциональностью, определенными для каждого приложения (с использованием Blueprint).Использование глобальных переменных в разных модулях python

config.py

user_app1  = username1 
password_app1 = password1 
user_app2  = username2 
password_app2 = password2 

app1.py

import config 
env.shell  = '/bin/ksh' 
env.user  = config.user_app1 
env.password = config.password_app1 
execute(stopService) 

app2.py

import config 
env.shell  = '/bin/ksh' 
env.user  = config.user_app2 
env.password = config.password_app2 
execute(stopService) 

main.py

import config 
from app1 import app1_api 
from app2 import app2_api 

app = Flask(__name__) 
app.register_blueprint(app1_api, url_prefix='/app1') 
app.register_blueprint(app2_api, url_prefix='/app2') 

@app.route('/app1') 
def app1(): 
return render_template('app1.html') 

@app.route('/app2') 
def app2(): 
return render_template('app2.html') 

if __name__ == '__main__': 
app.run(host='0.0.0.0', port=int("80")) 

Когда я запустил приложение Flask из main.py и вызвал функции выполнения Fabric для app2, он, похоже, выбирает имя пользователя и пароль для приложения 1. Что я делаю неправильно?

ответ

0

Проблема заключалась в том, что ниже переменные кода инициализации никогда не выполняется получение:

env.shell  = '/bin/ksh' 
env.user  = config.user_app2 
env.password = config.password_app2 

Создание функции инициализации, которые имели эти строки и выполняет эту функцию до того, как другие, как выполнить() работал.