Aunque esta guía es válida para cualquier instalación de django, está pensada para usuarios de guebs.com, especialmente en lo que se refiere a las rutas de archivos y aplicaciones
Para seguir está guía será necesario que dispongas de acceso ssh a tu cuenta de hosting. Sigue esta guía sobre Como acceder vía SSH a tu cuenta
1 - Crear la aplicación desde el panel de Hosting
Para instalar Django lo primero que debes hacer es crear la aplicación desde el panel de hosting del plan de alojamiento.
El nombre que pongas como nombre de aplicación será el nombre de tu aplicación django, supondremos que has elegido miapp como nombre de aplicación.
La elección de nombre miapp implica que el directorio de tu aplicación Django será python/miapp
2 - Instalar paquete Django
Para instalar la última versión de Django ejecuta el siguiente comando vía SSH:
pip install django --user
Para comprobar que se ha instalado correctamente ejecuta el siguiente comando:
python -m django --version
3 - Crear el proyecto Django
Tal y como hemos adelantado, el directorio de tu aplicación deberá ser python/miapp. Por tanto, para crear la aplicación debes ejecutar el siguiente vía SSH:
cd python
rm -fr miapp
django-admin startproject miapp
4 - Configurar el archivo WSGI
Suponiendo que el nombre usuario de tu hosting es usuario_cpanel y dado que la aplicación es miapp, crea el archivo miapp/passenger_wsgi.py con el siguiente contenido:
import sys ## Necesario con ambos casos. sys.path.insert(0, "/home/usuario_cpanel/python/miapp") import os os.environ['DJANGO_SETTINGS_MODULE'] = 'miapp.settings' from django.core.wsgi import get_wsgi_application application = get_wsgi_application()
5 - Configurar Django
Ahora debemos editar el archivo python/miapp/miapp/settings.py y dejar las opciones de rutas estáticas de la siguiente manera:
STATIC_URL = '/' STATIC_ROOT= '/home/usuario_cpanel/python/miapp/public/' MEDIA_URL = '/media' ALLOWED_HOSTS = ['www.midominio123.com']
En el servicio de guebs.com los archivos estáticos están mapeados contra el directorio public que debes colocar en el directorio public de tu aplicación, que en este ejemplo sería: /home/usuario_cpanel/python/miapp/public
Una vez establecidas las directivas anteriores, sólo debes usar la herramienta de copiado de archivos estáticos al directorio establecido:
cd miapp
python manage.py collectstatic
Que copiará de manera automática los archivos a tu public. Cada vez que realices un deployment de tu aplicación es recomendable que lo reejecutes de nuevo.
6 - El primer "hola mundo"
Creamos el archivo python/miapp/miapp/views.py con una primera vista básica:
from django.http import HttpResponse def index(request): return HttpResponse("Hola Mundo.")
Y posteriormente mapeamos la URL a través del python/miapp/miapp/urls.py:
from django.conf.urls import include,url from django.contrib import admin from . import views urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^$', views.index, name='index'), ]
Hecho esto, al llamar a tu dominio encontrarás tu primer 'hola mundo' en Django.
7 - Configuración de la base de datos
Para este ejemplo configuraremos MySQL, aunque en guebs.com disponemos de Postgresql también.
Primero, instalamos el paquete mysqlclient de Python:
pip install mysqlclient --user
Luego configuramos los datos de conexión a MySQL en el archivo settings.py de la aplicación:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'nombre_basedatos', 'USER': 'usuario_base_datos', 'PASSWORD': 'password', 'HOST': 'localhost', 'PORT': '3306', } }
Por último, sólo debemos realizar el migrate:
python manage.py migrate
Si prefieres usar PostgreSQL en lugar de MySQL sigue las indicaciones de la guía Como instalar Django en tu hosting usando PostgreSQL.
8 - Configuración del acceso administrador inicial
Debemos ejecutar el siguiente comando:
python manage.py createsuperuser
A partir de este momento podremos loguearnos en la zona de administración del proyecto, que suele estar por defecto en tudominio.com/admin
9 - Creación de la primera aplicación dentro del proyecto
Para crear una aplicación dentro de un proyecto existente usaremos la opción startapp. Por ejemplo con el siguiente comando:
python manage.py startapp nuevo
Que creará una carpeta con la aplicación en la raíz del proyecto. Igual que en la aplicación principal, crearemos un views.py y un urls.py con el contenido de una vista por defecto
python/miapp/nuevo/views.py
from django.shortcuts import render # Create your views here. from django.http import HttpResponse def index(request): return HttpResponse("Hello, world. Esto es nuevo.") from django.conf.urls import url
python/miapp/nuevo/urls.py
from django.conf.urls import url, include from django.contrib import admin from . import views urlpatterns = [ url(r'^$', views.index, name='index'), ]
Y finalmente mapeamos la url que queramos a la nueva aplicación, en el archivo urls.py de la aplicación principal:
python/miapp/miapp/urls.py
urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^nuevo/', include('nuevo.urls')), url(r'^$', views.index, name='index'), ]
10 - Reiniciar Aplicacion Python
Una vez modificado todo, necesitamos reiniciar el servidor para que nos muestre los cambios realizador.
en el directorio python/miapp/
mkdir tmp
touch tmp/restart.txt
Pasados unos segundos la aplicación se habrá reiniciado y veremos nuestro hola mundo en django.
Hola, esta genial peo me gustaria saber la marca o el proveedor del hosting y como desplegar un proyecto que tengo en git siguiendo este tuto...gracias