如何使用单独的应用程序文件夹运行本地Django网站?

时间:2018-07-09 14:59:19

标签: django project-structure django-apps

我正在开发一个新的Django网站。它使用了一些现有的Django应用程序,而我正在构建自己的应用程序。

当前文件夹结构(被截断):

projects/
- mysite/
  - .git/
  - conf/
  - mysite/
    - __init__.py
    - settings.py
  - myapp/
    - __init__.py
    - admin.py
    - models.py
  - manage.py

我想将我的网站和应用程序作为单独的Git存储库提供。换句话说,某人可能想克隆/贡献整个站点,或者他们只想克隆/贡献一个应用程序。

根据高级教程:如何编写可重复使用的应用程序Packaging your app部分,对于单独的站点和应用程序文件夹,需要以下文件夹结构:

projects/
- mysite/
  - .git/
  - conf/
  - mysite/
    - __init__.py
    - settings.py
  - manage.py
- django-myapp
  - .git/
  - myapp/
    - __init__.py
    - admin.py
    - models.py
  - setup.py

但是在Using your own package中,同一教程建议进行和使用本地修改的唯一方法是:

  1. 修改应用文件夹
  2. 运行python setup.py sdist来构建应用
  3. 运行pip install --user /path/to/django-myapp.tar.gz进行安装
  4. 运行Django网站

如何组织这些文件夹,以便可以轻松地修改网站或应用程序代码,并立即在本地运行该网站?换句话说,避免每次都构建和导入本地tarball。

1 个答案:

答案 0 :(得分:0)

我天真地读到,下面的(未经测试的)结构应该起作用,myapp被排除在用于本地运行站点的virtualenv中...

projects/
- mysite/
  - .git/
  - conf/
  - mysite/
    - __init__.py
    - settings.py
  - myapp/ --> symlink to projects/django-myapp/myapp
  - .gitignore --> ignores myapp/
  - manage.py
- django-myapp
  - .git/
  - myapp/
    - __init__.py
    - admin.py
    - models.py
  - setup.py

显然,应该仔细测试和协调发行版,以便发行版和已发布的依赖项可以正确地协同工作。