Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用manage.py启动Tapp以在另一个目录中创建应用程序_Python_Django - Fatal编程技术网

Python 使用manage.py启动Tapp以在另一个目录中创建应用程序

Python 使用manage.py启动Tapp以在另一个目录中创建应用程序,python,django,Python,Django,我的Django项目结构是: /proj /frontend /server /proj /app1 /app2 manage.py 如何运行python manage.py startapp_name,以便新创建的应用程序位于/server目录中?我尝试在server目录中运行django-admin.py startapp appname来创建应用程序,但最终会出现以下错误: $ ./manage.py runserver Traceback (most

我的
Django
项目结构是:

/proj
  /frontend
  /server
    /proj
    /app1
    /app2
  manage.py
如何运行
python manage.py startapp_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.
$./manage.py运行服务器
回溯(最近一次呼叫最后一次):
文件“/manage.py”,第10行,在
从命令行(sys.argv)执行命令
文件“/Users/bli1/Development/Django/CL/cherngloong/cherngloong/lib/python2.7/site packages/Django/core/management/__init_u.py”,第351行,从命令行执行
utility.execute()
文件“/Users/bli1/Development/Django/CL/cherngloong/cherngloong/lib/python2.7/site packages/Django/core/management/____________.py”,第343行,在execute中
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“/Users/bli1/Development/Django/CL/cherngloong/cherngloong/lib/python2.7/site packages/Django/core/management/__init_u.py”,第177行,在fetch_命令中
commands=get_commands()
文件“/Users/bli1/Development/Django/CL/cherngloong/cherngloong/lib/python2.7/site packages/Django/utils/lru_cache.py”,第101行,在包装器中
结果=用户函数(*args,**kwds)
文件“/Users/bli1/Development/Django/CL/cherngloong/cherngloong/lib/python2.7/site-packages/Django/core/management/__-init___;.py”,第72行,在get_命令中
对于反向中的应用程序配置(列表(apps.get\u app\u configs()):
文件“/Users/bli1/Development/Django/CL/cherngloong/cherngloong/lib/python2.7/site packages/Django/apps/registry.py”,第137行,在get\u app\u configs中
self.check_apps_ready()
文件“/Users/bli1/Development/Django/CL/cherngloong/cherngloong/lib/python2.7/site packages/Django/apps/registry.py”,第124行,在check\u apps\u ready中
raise AppRegistryNotReady(“应用程序尚未加载。”)
django.core.exceptions.AppRegistryNotReady:尚未加载应用程序。

您可以
appname
之后指定
/server/appname
目录的路径作为
目的地,即创建Django应用程序目录结构的位置

你需要做什么?

1。您需要首先在
/server
内创建一个目录
appname

mkdir /server/appname # create directory from root level
2。然后,运行
startapp
命令创建应用程序

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

我找到的最简单的方法是进入
服务器
文件夹并创建一个
\uuuu init\uuuuu.py
文件:

touch __init__.py
然后,创建您想要的任何应用程序:

django-admin startapp {{APP NAME}}

如果您已经在
服务器
目录中,则可以运行

python ../manage.py startapp appname
django-admin startapp my_new_app

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

我总是将我的应用程序放在一个内部文件夹中(与Django创建的文件夹相同,带有项目名称),遵循类似于您想要做的设计。当你想创建一个新的应用程序时,你可以使用,正如前面的答案所说

python ../manage.py startapp my_new_app
从要在其中创建应用程序的文件夹中。另一件事,更简单的是我所做的,就是你可以跑步

python ../manage.py startapp appname
django-admin startapp my_new_app
从这个内部文件夹中,选择应用程序,它将工作

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

第一名:

  • 使用终端转到您的文件夹,您要在其中创建应用程序
秒:

  • 在终端中键入以下命令
django管理员startapp

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

使用绝对路径管理文件对我来说很好,这是从目标文件夹运行的示例

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

如果您是使用cookiecutter django启动项目的,那么下面的链接中给出了步骤

与我在这里看到的已接受答案和其他答案不同的是,作为额外的步骤,您需要在apps.py中更改应用程序的名称

要复制并粘贴到此处:

1 - create the <name-of-the-app> app with python manage.py startapp
2 - move <name-of-the-app> directory to <project_slug> directory
3 - edit <project_slug>/<name-of-the-app>/apps.py and
change name = "<name-of-the-app>" to name = "<project_slug>.<name-of-the-app>"
4 - add "<project_slug>.<name-of-the-app>.apps.<NameOfTheAppConfigClass>", on your LOCAL_APPS on config/settings/base.py
1-使用python manage.py startapp创建应用程序
2-将目录移动到目录
3-编辑//apps.py和
将name=“”更改为name=“”
4-在config/settings/base.py上的本地应用程序上添加“.apps.”

这将是您的“服务器”目录。

这是因为您在一个目录中创建应用程序,其中已经有一个目录,或者只是存在由
startapp
@Ivan生成的同名文件。这是否意味着每次我都必须删除这些文件?嗯,是的。如果您已经在该目录中有一个应用程序,那么覆盖将实现什么效果?在一个空目录中创建它,或者,如果出于某种原因您想覆盖它们,只需在其他地方创建它们并进行复制。@li另外,您需要先在
/server
中创建一个
appname
目录,然后运行
startapp
命令。检查编辑。@Ivan这里是项目结构:如果我想在
服务器中创建我的应用程序,但是由于
\uuu init\uuuuuuuuuuuupy
已经在
服务器中,所以出现了错误<代码>app1
app2
尚未创建。这就是我想要实现的。但是我得到的文件存在错误这比上面的解决方案容易得多。
1 - create the <name-of-the-app> app with python manage.py startapp
2 - move <name-of-the-app> directory to <project_slug> directory
3 - edit <project_slug>/<name-of-the-app>/apps.py and
change name = "<name-of-the-app>" to name = "<project_slug>.<name-of-the-app>"
4 - add "<project_slug>.<name-of-the-app>.apps.<NameOfTheAppConfigClass>", on your LOCAL_APPS on config/settings/base.py