Django项目的应用程序列表

5

我完全不了解Django,我想列出Django项目的应用程序,例如:

FeinCMS

我知道startapp可以为应用程序创建目录结构。 我想知道是否有函数或文件来获取应用程序列表。

例如以FeinCMS为例,该存储库包含:

feincms
├── AUTHORS
├── CHANGELOG.rst
├── CONTRIBUTING.rst
├── docs
│   ├── admin.rst
│   ├── advanced
│   ├── conf.py
│   ├── contenttypes.rst
│   ├── contributing.rst
│   ├── deprecation.rst
│   ├── extensions.rst
│   ├── faq.rst
│   ├── images
│   ├── index.rst
│   ├── installation.rst
│   ├── integration.rst
│   ├── Makefile
│   ├── medialibrary.rst
│   ├── migrations.rst
│   ├── page.rst
│   ├── releases
│   ├── settings.rst
│   ├── templatetags.rst
│   └── versioning.rst
├── feincms
│   ├── admin
│   ├── apps.py
│   ├── content
│   ├── contents.py
│   ├── context_processors.py
│   ├── contrib
│   ├── default_settings.py
│   ├── extensions
│   ├── __init__.py
│   ├── _internal.py
│   ├── locale
│   ├── management
│   ├── models.py
│   ├── module
│   ├── shortcuts.py
│   ├── signals.py
│   ├── static
│   ├── templates
│   ├── templatetags
│   ├── translations.py
│   ├── urls.py
│   ├── utils
│   └── views
├── LICENSE
├── MANIFEST.in
├── README.rst
├── setup.cfg
├── setup.py
└── tests
    ├── cov.sh
    ├── manage.py
    ├── requirements.txt
    ├── testapp
    └── tox.ini

我该如何使用Django列出存储库中的应用程序?

请查看@nttaylor在已接受的解决方案的评论部分中提出的此链接 - carla
2个回答

3

settings.INSTALLED_APPS 是应用程序列表。你可以启动 Django shell (manage.py shell) 查询这个设置:

from django.conf import settings
print(settings.INSTALLED_APPS)

>>> ['user', 'django.contrib.auth', 'django.contrib.sites', ...]

这是一个不错的回答,但是这适用于正在开发项目的情况。但是我该如何在Django中加载现有项目并列出其应用程序?我将澄清我的问题。 - sebelk
你不能直接这样做,需要创建一个使用FeinCMS的应用程序,并在shell中运行它。测试目录中的testapp可以让你无需自己创建应用程序就能完成这个过程。 - dirkgroten

3

查询 django.apps ...

from django.apps import apps
for app in apps.get_app_configs():
       print(app, app.name, app.label)

在...方面的结果:

<ContentTypesConfig: contenttypes> django.contrib.contenttypes contenttypes
<AdminConfig: admin> django.contrib.admin admin

这是一个更好的方法,因为通常您关心应用程序标签(例如运行迁移或生成迁移)。 - Micah Smith

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接