flask:重新加载时,即使在调试模式下,如何使一些代码执行一次

时间:2017-10-18 10:57:23

标签: python flask

我有一些不应该在重装瓶时再次执行 它应该只工作一次甚至重新加载闪存

from flask import *
from wxpy import *

app = Flask(__name__)
bot = None


@app.route('/')
def hello_world():
    return 'hi,my hello ,iiiHello wxpy! not reload bot'

@app.route('/hello/')
def hello():
    return "hello"

@app.route('/friends/')
def hellos():
    guys = bot.friends()
    return render_template('hello.html', guys=guys)


def init_bot():
    bot = Bot(console_qr = 1)
    return bot

if __name__ == '__main__':
    bot = init_bot()
    app.run(debug=True,use_reloader=False)

我只是使用wxpy和flask来编写网页 我想重新加载烧瓶汽车 但我不想再次执行Bot init函数,因为我需要扫描qr-code 任何人都可以帮助我 我可以修改代码并立即生效,但不需要再次扫描qr-code

1 个答案:

答案 0 :(得分:0)

我正在扩大我的评论以回答。

创建一个文件来标记已启动僵尸程序。

import os.path

def init_bot():
    bot = Bot(console_qr = 1)
    # create an empty file to denote that bot has been initiated 
    open('bot.initiated', 'a').close()  
    return bot

if __name__ == '__main__':
    if not os.path.exits('bot.initiated'):
        bot = init_bot()
    app.run(debug=True)

<强>警告:

这仅适用于您正在开发的情况,并且希望在重新加载期间阻止某些操作。如果您真的想要停止开发服务器并从头开始初始化应用程序(包括init_bot),那么您应该从系统中手动删除虚拟文件bot.initiated