我在Linux服务器上有一个Django应用程序.在其中一个视图中,print执行某种形式的命令,并打印一些字符串.如何找出打印的字符串是什么?是否有一些记录保存这些东西?
输出应该在启动django的终端中。(如果您不直接启动它,我不相信有一种阅读方法)
正如linkedlinked指出的那样,最好不要使用print,因为这可能会导致异常!但这不是唯一的原因:为此目的而设计了一些模块(例如logging),它们具有更多选择。
这个站点(即使是从2008年开始)也证实了我的观点:
如果您想知道视图中发生了什么,最快的方法是放入打印语句。的开发服务器输出任何打印语句直接到终端; 它是JavaScript Alert()的服务器端替代方法。
如果您希望对日志记录更加复杂,则值得使用Python的日志记录模块(标准库的一部分)。您可以在settings.py中对其进行配置:他在此处描述了操作方法(在网站上查看)
出于调试目的,您还可以启用调试模式或使用django-debug-toolbar。
希望能帮助到你!:)
永远不要使用print,因为一旦部署,它就会打印到标准输出并且 WGSI 会中断。
使用日志记录。出于开发目的,非常容易设置。在你的项目 __init__.py 上:
import logging
from django.conf import settings
fmt = getattr(settings, 'LOG_FORMAT', None)
lvl = getattr(settings, 'LOG_LEVEL', logging.DEBUG)
logging.basicConfig(format=fmt, level=lvl)
logging.debug("Logging started on %s for %s" % (logging.root.name, logging.getLevelName(lvl)))
Run Code Online (Sandbox Code Playgroud)
现在您记录的所有内容都转到 stderr,在本例中,是您的终端。
logging.debug("Oh hai!")
Run Code Online (Sandbox Code Playgroud)
另外,您可以使用 LOG_LEVEL 设置控制settings.py上的详细程度。