我創建了一個燒瓶應用程序並希望運行的服務器($ python run.py
),但在這之前要做上運行$ python run.py --init
使用argparse啓動燒瓶服務器
代碼(run.py)一些基本的數據庫任務:
def init():
do_dbstuff()
start_server()
def do_dbstuff():
# doing db stuff
def start_server():
app.run(host='127.0.0.1', port=8080, debug=True)
parser = argparse.ArgumentParser(description="Welcome to my server", prog="Simpleserver")
parser.add_argument('--init', dest='run_init', action='store_true', help="does db stuff and starts the server")
parser.add_argument('--dbstuff', dest='run_do_dbstuff', action='store_true', help="does db stuff")
args = parser.parse_args()
if args.run_init:
init()
elif args.run_do_db_stuff:
do_dbstuff()
else:
start_server()
上面的代碼工作,但問題是當服務器被啓動init()
函數被再次調用(希望它只運行一次)。
這是爲什麼發生?
感謝
對於調試,我會在解析後立即執行「print args」。如果這是正確的,並且不重複,它排除任何'argparse'問題。 – hpaulj
是啊,那裏沒有問題,我得到所有參數..:| – Deepak
某些服務器在編輯應用程序後重新啓動。 – hpaulj