如何在django shell中打印出我的设置内容?

Fra*_*ery 42 python django

当我跑步时python manage.py shell,我可以打印出python路径

>>> import sys
>>> sys.path
Run Code Online (Sandbox Code Playgroud)

我应该输入什么来反省我所有的django设置?

paj*_*ton 51

from django.conf import settings
dir(settings)
Run Code Online (Sandbox Code Playgroud)

然后从显示的内容中选择属性dir(settings):

settings.name
Run Code Online (Sandbox Code Playgroud)

name您感兴趣的属性在哪里?

或者:

settings.__dict__
Run Code Online (Sandbox Code Playgroud)

打印所有设置.但它也会打印模块标准属性,这可能会使输出混乱.

  • 导入设置无效.尝试从django.conf导入设置作为vinod建议. (9认同)
  • `settings`是一个模块,而不是一个类.所以`settings .__ dict__`并没有用. (2认同)

Noa*_*son 44

我知道这是一个老问题,但是对于当前版本的django(1.6+),您可以通过以下方式从命令行完成此操作:

python manage.py diffsettings --all
Run Code Online (Sandbox Code Playgroud)

结果将显示所有设置,包括defautls(在设置名称前面用###表示).

  • 尚未安装Django 2.7+。`diffsettings`在> = 1.4中存在。`--all`已在1.6中添加。https://docs.djangoproject.com/zh-CN/1.9/ref/django-admin/#diffsettings (2认同)

Sky*_*and 15

如果一个新手偶然发现这个问题想要用勺子喂食打印出所有设置的值:

def show_settings():
    from django.conf import settings
    for name in dir(settings):
        print(name, getattr(settings, name))
Run Code Online (Sandbox Code Playgroud)


Vin*_*rup 14

要显示所有django设置(包括未在本地设置文件中指定的默认设置):

from django.conf import settings
dir(settings)
Run Code Online (Sandbox Code Playgroud)