在瓶子中启用调试模式所需要做的就是:
at System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.RuntimePropertyInfo.GetValue(Object obj, BindingFlags invokeAttr, Binder binder, Object[] index, CultureInfo culture)
at System.Reflection.RuntimePropertyInfo.GetValue(Object obj, Object[] index)
at TicketSystemDb.DTO.Helper.DTOHelper.ConvertRelations(Object origin, Object to) in C:\TicketSystem\TicketSystemDb\DTO\Helper\DTOHelper.cs:line 90
at TicketSystemDb.DTO.Helper.DTOHelper.SimplifyResult(Object from, Object to) in C:\TicketSystem\TicketSystemDb\DTO\Helper\DTOHelper.cs:line 61
at TicketSystemDb.REPO.TicketREPO.GetTickets() in C:\TicketSystem\TicketSystemDb\REPO\TicketREPO.cs:line 35
at TicketSystemDb.UOW.TicketUOW.GetTickets() in C:\TicketSystem\TicketSystemDb\UOW\TicketUOW.cs:line 21
at TicketSystemAPI.Controllers.TicketController.Get() in C:\TicketSystem\TicketSystemAPI\Controllers\TicketController.cs:line 22
at lambda_method(Closure , Object , Object[] )
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass6_1.<GetExecutor>b__3(Object instance, Object[] methodParameters)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)
我如何在Flask框架中做同样的事情?
答案 0 :(得分:2)
要启用调试模式,我将以下代码添加到flask应用程序:
app.config['ENV'] = 'development'
app.config['DEBUG'] = True
app.config['TESTING'] = True
我还将建议为环境设置环境变量并进行调试。
$ export FLASK_ENV=development
$ export FLASK_DEBUG=1
答案 1 :(得分:1)
如果您处于开发环境中;您只需在Flask.run
中将其指定为here。
示例:
app.run(host='0.0.0.0', port='8080', debug=True)
您也可以采用另一种方法来修改default_config
,如图here所示。
示例:
app.config['DEBUG'] = True
app.run(host='0.0.0.0', port='8080')
甚至导出FLASK_DEBUG=1
-请记住,FLASK_DEBUG
会覆盖FLASK_ENV=development
。
如下所示,Flask表示以下内容:
在生产环境中部署时,请勿启用调试模式。
尽管您已经说过,您希望在生产中启用调试功能;因此,为什么我不使用Flask.run
,因为它打算在开发环境中使用,所以我当然不会将FLASK_ENV
设置为development
。
我建议您重新考虑生产调试的概念,因为生产并不意味着调试。简而言之,我相信您想在生产环境中进行调试的理由是错误的。
另一种可能的解决方案是使用以下(分叉,多进程):
from werkzeug.debug import DebuggedApplication
application = DebuggedApplication(app, True)
答案 2 :(得分:1)
使用Flask 1.0版,您可以将环境变量设置为在运行flask命令时自动导入,但是您需要安装python-dotenv
。
然后,您可以在顶级目录.flaskenv
中创建一个新文件,并在其中设置环境变量:
FLASK_APP=run.py
FLASK_DEBUG=1
答案 3 :(得分:1)
如果有人在Windows中遇到相同的问题,请跟踪Gil Sousa'S答案
在文件的代码中添加这三行,
app.config['ENV'] = 'development'
app.config['DEBUG'] = True
app.config['TESTING'] = True
在cmd
或您的anaconda prompt
中,键入以下命令以设置调试模式,
$ set FLASK_ENV=development
$ set FLASK_DEBUG=1
并且不要忘记在debug=True
内部传递app.run()
作为参数。
PS:如果您遵循的答案是FYKI,那么烧瓶应用程序现在正在使用命令$set FLASK_APP=app.py
,然后使用$FLASK run
运行烧瓶应用程序。这仅适用于使用export
而不是set
的Linux Windows。
答案 4 :(得分:0)
http://flask.pocoo.org/docs/1.0/quickstart/#debug-mode
在文档中:
要启用所有开发功能(包括调试模式),可以在运行服务器之前导出FLASK_ENV环境变量并将其设置为开发:
$ export FLASK_ENV=development
$ flask run
(在Windows上,您需要使用set而不是export。)
这将执行以下操作:
它激活调试器 它激活自动重新加载器 它在Flask应用程序上启用调试模式。
答案 5 :(得分:0)
在flask库中,您可以使用以下步骤启用内置调试模式。
第 1 步:在您的项目文件中创建一个虚拟环境(最佳实践):
python -m venv webserver
或者,使用 python3
python3 -m venv webserver
其中网络服务器表示虚拟环境的位置,文件夹将被保存为“网络服务器”。
最佳做法是使用文件夹名称作为“venv”。
第 2 步:使用 Windows Powershell,导航到您的项目文件夹
cd "location of the project folder"
第三步:设置flask app变量以指定python脚本名称:
$env:FLASK_APP="server.py"
第四步:设置flask环境变量,指定环境类型为“development”,激活调试器:
$env:FLASK_ENV="development"
第五步:激活项目的虚拟环境:
venv\scripts\activate
第 6 步:运行 Flask 应用程序:
flask run