【问题标题】:List apps of a django project列出 django 项目的应用程序
【发布时间】:2018-06-21 13:59:06
【问题描述】:

我是 django 的新手,我想列出一个 django 项目的应用程序,例如:

FeinCMS

我知道 startapp 会为应用程序创建目录结构。不知道有没有函数或者文件可以获取应用列表。

以 FeinCMS 为例,repo 包含:

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 列出 repo 中的应用程序?

【问题讨论】:

    标签: django


    【解决方案1】:

    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 中加载现有项目并列出其应用程序?我会澄清我的问题。
    • 你不能。您需要创建一个使用 FeinCMS 的应用程序,然后运行它(在 shell 中)。测试目录中的 testapp 将允许您这样做,而无需自己创建应用程序。
    【解决方案2】:

    查询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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-13
      • 2021-06-04
      • 1970-01-01
      • 2011-02-06
      • 2011-07-19
      • 1970-01-01
      • 1970-01-01
      • 2011-04-08
      相关资源
      最近更新 更多