django 使用www.example.com启动tappmanage.py以在其他目录中创建应用程序

t8e9dugd  于 2023-01-27  发布在  Go
关注(0)|答案(7)|浏览(148)

我的Django项目结构是:

/proj
  /frontend
  /server
    /proj
    /app1
    /app2
  manage.py

如何运行python manage.py startapp app_name,以便新创建的应用程序位于/server目录中?我尝试在server目录中运行django-admin.py startapp appname来创建应用程序,但最终出现以下错误:

./manage.py runserver

输出:

Traceback (most recent call last):
  File "./manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/bli1/Development/Django/CL/cherngloong/cherngloong/lib/python2.7/site-packages/django/core/management/__init__.py", line 351, in execute_from_command_line
    utility.execute()
  File "/Users/bli1/Development/Django/CL/cherngloong/cherngloong/lib/python2.7/site-packages/django/core/management/__init__.py", line 343, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Users/bli1/Development/Django/CL/cherngloong/cherngloong/lib/python2.7/site-packages/django/core/management/__init__.py", line 177, in fetch_command
    commands = get_commands()
  File "/Users/bli1/Development/Django/CL/cherngloong/cherngloong/lib/python2.7/site-packages/django/utils/lru_cache.py", line 101, in wrapper
    result = user_function(*args, **kwds)
  File "/Users/bli1/Development/Django/CL/cherngloong/cherngloong/lib/python2.7/site-packages/django/core/management/__init__.py", line 72, in get_commands
    for app_config in reversed(list(apps.get_app_configs())):
  File "/Users/bli1/Development/Django/CL/cherngloong/cherngloong/lib/python2.7/site-packages/django/apps/registry.py", line 137, in get_app_configs
    self.check_apps_ready()
  File "/Users/bli1/Development/Django/CL/cherngloong/cherngloong/lib/python2.7/site-packages/django/apps/registry.py", line 124, in check_apps_ready
    raise AppRegistryNotReady("Apps aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
pgky5nke

pgky5nke1#

您可以指定appname之后./server/appname目录的路径作为destination,即Django应用目录结构将被创建的位置。
来自startapp文档:

startapp <app_label> [destination] # startapp command usage

在当前目录或给定的目标中为给定的应用名称创建Django应用目录结构。
如果只给出了应用程序名称,则会在当前工作目录中创建应用程序目录。
如果提供了可选的目的地,Django将使用现有的目录,而不是创建一个新的目录
因此,您可以将./server/appname目录的路径指定为destination值。

django-admin.py startapp appname [destination] # Specify destination

你需要做什么
**1.**首先需要在/server中创建一个目录appname

mkdir ./server/appname # Create a directory from the root level

**2.**然后,运行startapp命令创建应用程序。

django-admin.py startapp appname ./server/appname
bxgwgixi

bxgwgixi2#

我总是把我的应用程序放在一个内部文件夹中(和Django创建的文件夹一样,有项目的名字),遵循Two Scoops of Django的设计,这和你想做的很相似。当你想创建一个新的应用程序时,你可以使用,就像前面的答案说的那样,

python ../manage.py startapp my_new_app

从您要创建应用程序的文件夹中。另一件事,更简单的是我所做的,是您可以运行

django-admin startapp my_new_app

从这个内部文件夹,应用程序,它会工作。

n6lpvg4x

n6lpvg4x3#

如果您已经在server目录中,则可以运行

python ../manage.py startapp appname

并且appname将在server目录中创建,而不是在项目根目录中创建。

kzipqqlq

kzipqqlq4#

在Django项目中创建一个新应用程序。

    • 第一名:**
  • 使用终端转到您的文件夹,您要在其中创建应用程序
    • 第二次:**
  • 在终端中键入以下命令,
django-admin startapp <new_app_name>

现在,您可以检查,使用给定名称创建的新应用程序。

v440hwme

v440hwme5#

我发现最简单的方法是进入server文件夹并创建一个__init__.py文件:

touch __init__.py

然后,创建您想要的任何应用:

django-admin startapp {{APP NAME}}
vnjpjtjt

vnjpjtjt6#

如果您使用 * cookiectter-django * 启动项目,那么下面的链接给出了步骤。
与可接受的答案和我在这里看到的其他答案的区别在于,您需要在 apps.py 中更改应用程序的名称,这是一个额外的步骤。

  • 创建的新应用程序位于项目根目录中,而不是项目slug #1725中 *

要复制粘贴到此处:
1.使用 python manage.py startapp创建应用程序
1.移动 目录到<project_slug>目录
1.编辑 <project_slug>//www.example.com apps.py 并将名称=““更改为名称=““<project_slug>。
1.在 <project_slug>文件 *config/settings/ www.example.com * 的 LOCAL_APPS 中添加“.. apps.“base.py
这里<project_slug>是您的“服务器”目录。

balp4ylt

balp4ylt7#

对管理文件使用绝对路径。这对我来说效果很好,下面是一个从目标文件夹运行的示例:

python /home/user/project_name/manage.py startupapp app_name

相关问题