I have a Django project, let's say "project1". Typical folder structure for applications is:
/project1/ /app1/ /app2/ ... __init__.py manage.py settings.py urls.py
What should I do if I want to hold all of my applications in some separate folder, 'apps' for example? So that structure should look like the following:
/project/ apps/ app1/ app2/ ... __init__.py manage.py settings.py urls.py
The way I like to organize my Django Project is – Keeps all Django apps in apps folder, static files (scripts, js, CSS) in the static folder, HTML files in templates folder and images and media content in the media folder.
Any Django project consists of multiple applications.
Django comes with six built-in apps that we can examine.
You can add your apps
folder to your python path by inserting the following in your settings.py
:
import os import sys PROJECT_ROOT = os.path.dirname(__file__) sys.path.insert(0, os.path.join(PROJECT_ROOT, 'apps'))
Then you can use all the apps in this folder just in the same way as they were in your project root!
You can do this very easily, but you need to change the settings.py
to look like this:
INSTALLED_APPS = ( 'apps.app1', 'apps.app2', # ... )
And your urls.py
to look like this:
urlpatterns = patterns('', (r'^app1/',include('apps.app1')), (r'^app2/',include('apps.app2')), )
.. and modify any import
s to point to the app location
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With