debugging 具有可选命令行参数的Flask调试模式[duplicate]

vmdwslir  于 2022-11-14  发布在  其他
关注(0)|答案(1)|浏览(170)

此问题在此处已有答案

Why does running the Flask dev server run itself twice?(7个答案)
两个月前关门了。
如果这不是一个有效的问题,请道歉。
我可以通过在命令行中引入一个可选参数来运行我的flask应用程序,如下所示:

python main.py reset

对于我的情况,reset参数清除了连接到Web应用程序的sqlite数据库中的所有行,这意味着我可以用一个新的数据库来启动应用程序。
然而,在使用debug=True进行开发的过程中,当应用程序运行和我保存文件时,似乎上面的CL命令与可选参数沿着被调用,导致我的数据库不断被清除。
显而易见的解决方法是在我清除数据库后不带可选参数重新运行应用程序,这样调试模式就不会调用可选参数。
我想知道这是否被认为是一个“bug”,或者只是调试功能的工作方式,没有什么可以改变这一点?

bbmckpt7

bbmckpt71#

我不太清楚为什么在您不期望的情况下调用reset,我必须main.py在调试器中查看www.example.com才能弄清楚。
但是Flask有一个内置的方法,可以为你的用例定制命令,比如重置数据库,或者用虚拟数据填充数据库等等。

from flask import Flask

app = Flask(__name__)

@app.cli.command("resetdb")
def reset_db():
    # delete rows

$ flask resetdb
https://flask.palletsprojects.com/en/2.2.x/cli/#custom-commands

相关问题