python - apps - ejemplos de proyectos en django
Cómo mantener todas mis aplicaciones django en una carpeta específica (5)
¿Qué tal si BASE_DIR
variable BASE_DIR
ya presente en la settings.py
?
Solo agrega lo siguiente:
import sys
sys.path.insert(0, os.path.join(''BASE_DIR'', ''apps''))
Espero que esto ayude.
Tengo un proyecto de Django, digamos "proyecto1". La estructura típica de carpetas para aplicaciones es:
/project1/
/app1/
/app2/
...
__init__.py
manage.py
settings.py
urls.py
¿Qué debo hacer si quiero mantener todas mis aplicaciones en alguna carpeta separada, por ejemplo, ''apps''? Así que esa estructura debe parecerse a la siguiente:
/project/
apps/
app1/
app2/
...
__init__.py
manage.py
settings.py
urls.py
Puedes agregar tu carpeta de apps
a tu ruta de python insertando lo siguiente en tu settings.py
:
import os
import sys
PROJECT_ROOT = os.path.dirname(__file__)
sys.path.insert(0, os.path.join(PROJECT_ROOT, ''apps''))
¡Entonces puede usar todas las aplicaciones en esta carpeta de la misma manera que estaban en la raíz de su proyecto!
Puedes hacer esto muy fácilmente, pero necesitas cambiar settings.py
para tener este aspecto:
INSTALLED_APPS = (
''apps.app1'',
''apps.app2'',
# ...
)
Y tu urls.py
para lucir así:
urlpatterns = patterns('''',
(r''^app1/'',include(''apps.app1'')),
(r''^app2/'',include(''apps.app2'')),
)
.. y modifique cualquier import
para apuntar a la ubicación de la aplicación
Si estás usando virtualenv / virtualenvwrapper (y deberías estarlo), puedes usar el comando add2virtualenv
incluido para aumentar tu ruta de acceso de python:
mkdir apps
cd apps
pwd
[/path/to/apps/dir]
Copia ese camino al portapapeles, luego:
add2virtualenv /path/to/apps/dir
Solo agregue __init__.py
(4 guiones bajos en total) en su carpeta de aplicaciones. Ahora solo puedes hacer
urlpatterns = [
path(''polls/'',include(''apps.polls.urls'')),
path(''admin/'', admin.site.urls)
]