社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

当表单值为空时,python flask try boolean不返回错误消息[重复]

eRyan • 6 年前 • 2054 次点击  

如何调试烧瓶中的错误?打印到控制台?快闪信息到页面?或者有一个更强大的选项来找出出问题时发生了什么?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/40220
文章 [ 10 ]  |  最新文章 6 年前
Manishankar Singh
Reply   •   1 楼
Manishankar Singh    6 年前

安装 python-dotenv 在你的虚拟环境中。

在项目根目录中创建.flaskenv。我指的是project root文件夹,其中包含app.py文件

在此文件中写入以下内容:

FLASK_APP=myapp 
FLASK_ENV=development

现在发出以下命令:

flask run
thisisayush
Reply   •   2 楼
thisisayush    6 年前

在开发环境中使用loggers和print语句,在生产环境中可以使用sentry。

shubham
Reply   •   3 楼
shubham    7 年前

快速提示-如果您使用PyCharm,请转到 Edit Configurations = & gt; Configurations 使能 FLASK_DEBUG 复选框,重新启动 Run .

rstackhouse
Reply   •   4 楼
rstackhouse    8 年前

如果您在本地运行它并希望能够单步执行代码:

python -m pdb script.py

omkar yadav
Reply   •   5 楼
omkar yadav    6 年前

如果你想调试flak应用,只要转到flask应用所在的文件夹,别忘了激活你的虚拟环境,并将控制台中的行更改“mainfilename”为flask主文件。

export FLASK_APP="mainfilename.py"
export FLASK_DEBUG=1
python -m flask run --host=0.0.0.0

启用Flask应用程序调试器后,几乎所有错误都会打印在控制台或浏览器窗口上。 如果您想知道发生了什么,可以使用简单的print语句,也可以使用console.log()来编写javascript代码。

shubham
Reply   •   6 楼
shubham    7 年前

也可以使用 Flask Debug Toolbar 扩展以获取嵌入到呈现页面中的更详细信息。

from flask import Flask
from flask_debugtoolbar import DebugToolbarExtension
import logging

app = Flask(__name__)
app.debug = True
app.secret_key = 'development key'

toolbar = DebugToolbarExtension(app)

@app.route('/')
def index():
    logging.warning("See this message in Flask Debug Toolbar!")
    return "<html><body></body></html>"

按如下方式启动应用程序:

FLASK_APP=main.py FLASK_DEBUG=1 flask run
Eman4real
Reply   •   7 楼
Eman4real    7 年前

如果使用的是Visual Studio代码,请替换

app.run(debug=True)

具有

app.run()

当打开内部调试器时,将显示禁用vs代码调试器。

Édouard Lopez
Reply   •   8 楼
Édouard Lopez    9 年前

0.11 documentation ,可以通过导出环境变量来启用调试模式:

export FLASK_APP=/daemon/api/views.py  # path to app
export FLASK_DEBUG=1
python -m flask run --host=0.0.0.0
bnlucas
Reply   •   9 楼
bnlucas    12 年前

你可以使用 app.run(debug=True) 对于 Werkzeug Debugger 编辑 正如下面提到的,我应该知道的。

davidism SilentGhost
Reply   •   10 楼
davidism SilentGhost    7 年前

在开发模式下运行应用程序将在出现错误时在浏览器中显示交互式回溯和控制台。要以开发模式运行,请设置 FLASK_ENV=development 环境变量,然后使用 flask run 命令(记住 FLASK_APP 你的应用程序)。

对于Linux、Mac、Linux Subsystem for Windows、Git Bash on Windows等:

export FLASK_APP=myapp
export FLASK_ENV=development
flask run

对于windows cmd,使用 set 而不是导出:

set FLASK_ENV=development

对于powershell,使用 $env :

$env:FLASK_ENV = "development"

在烧瓶1.0之前,这是由 FLASK_DEBUG=1 而是环境变量。

如果你用的是 app.run() 方法而不是 烧瓶运行 命令,通过 debug=True 启用调试模式。

不管开发模式如何,回溯也会打印到运行服务器的终端。

如果使用的是pycharm、vs代码等,则可以利用其调试器使用断点逐步遍历代码。运行配置可以指向脚本调用 app.run(debug=True, use_reloader=False) ,或指向 venv/bin/flask 从命令行编写脚本并使用它。您可以让重新加载程序保持禁用状态,但重新加载将终止调试上下文,您必须再次捕获断点。

也可以通过调用 set_trace 在要开始调试的视图中。


除了积木,别用得太宽。用catch all包围所有代码 try... except... 将关闭要调试的错误。一般来说,这是不必要的,因为flask已经通过显示调试器或500个错误并将回溯打印到控制台来处理异常。