Foros del Web » Programando para Internet » Python »

[Aporte] Lleva a producción tu app hecha en Django con Heroku

Estas en el tema de [Aporte] Lleva a producción tu app hecha en Django con Heroku en el foro de Python en Foros del Web. Una de las razones por de haber escrito los tutoriales de virtualenv para windows y virtualenv para linux es para usarlos como punto de partida ...
  #1 (permalink)  
Antiguo 01/01/2013, 14:36
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
[Aporte] Lleva a producción tu app hecha en Django con Heroku

Una de las razones por de haber escrito los tutoriales de virtualenv para windows y virtualenv para linux es para usarlos como punto de partida en este tutorial aporte sobre heroku.

¿Que es heroku?
Heroku es una plataforma como servicio (PaaS) en la nube que soporta varios lenguajes de programación.

Requisitos previos
  • Conocimiento en python
  • Conocimiento en el framework en este caso django
  • Conocimiento basico sobre git
  • virtualenv + pip
  • Cuenta en heroku.com (es gratis)

Instalando Heroku toolbelt
Para instalar heroku toolbelt ve a la pagina https://toolbelt.heroku.com/ la instalación es muy simple. Ya sea en windows o linux.

Creando entorno virtual
En la ruta de su proyecto ejecuten el siguiente comando para crear un entorno virtual.
Código:
$ virtualenv venv
No olviden activarlo
Código:
$ source venv/bin/activate
Instalando dependencias
Código:
(venv)$ pip install django
Configurando base de datos
Primero necesitas instalar algunas dependencias:
Código:
(venv)$ pip install psycopg2 dj-database-url
Al final de tu archivo settings.py puedes poner el siguiente código para configurar tu base de datos en heroku.

Código Python:
Ver original
  1. import dj_database_url
  2. DATABASES['default'] =  dj_database_url.config()

Heroku te ofrece por defecto una base de datos PostgreSQL con un limite de 10,000 registros. Con la posibilidad de aumentar el limite a cambio de un pequeño pago.

Configurando Procfile
Procfile es un mecanizmo para declarar que comandos son ejecutados por los dynos en tu app.

Para esto tienes que crear un archivo de texto llamado Procfile con el siguiente contenido:
Código:
web: python manage.py runserver 0.0.0.0:$PORT --noreload
Creando requirements.txt
Una vez instalado todos paquetes necesario para correr tu app, es necesario que crees un archivo llamado requirements.txt para que heroku pueda instalar todos los paquetes necesarios.

Para hacer esto hacemos simplemente:
Código:
(venv)$ pip freeze > requirements.txt
Creando .gitignore
.gitignore es un archivo de texto plano donde por cada linea puedes poner un patrón a ignorar una vez que tengamos el repositorio.

Usualmente el contenido de mi .gitignore es:
Código:
venv
*.pyc
*.pyo
Pero ustedes pueden añadir mas reglas si lo requieren.

Iniciando repositorio
Una vez hecho todo lo anterior podemos crear nuestro repositorio (no realmente el orden no importa, siempre y cuando sepas que estas haciendo).
Código:
git init # Iniciamos el repositorio
git add . # Añadirmos todos los archivos al indice
git commit -m 'Initial Commit' # Hago el primer commit, para guardar todos los cambios
Creando app en heroku
Este paso solo se hace la primera vez.
Código:
heroku create
Esto crea una app en heroku y te añade el remote de la app a tu repositorio.

Llevando a produccion
Una vez que tengas todo funcionando llevas a produccion tu app haciendo un push al remote heroku.

Código:
git push heroku master
Sincronizando base de datos
Una vez que tu app este en la nube, puedes sincronizar tu base de datos con:
Código:
heroku run python manage.py syncdb
Nota final:
Heroku es un PaaS poderoso pero te restringe (por buenas razones) de hacer ciertas operaciones especialmente con la escritura de archivos.

Última edición por razpeitia; 06/01/2013 a las 15:54
  #2 (permalink)  
Antiguo 06/01/2013, 14:34
 
Fecha de Ingreso: diciembre-2011
Mensajes: 408
Antigüedad: 12 años, 10 meses
Puntos: 18
Respuesta: [Aporte] Lleva a producción tu app hecha en Django con Heroku

oye y como configuro la base de datos T_T
  #3 (permalink)  
Antiguo 06/01/2013, 15:55
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: [Aporte] Lleva a producción tu app hecha en Django con Heroku

Mira el nuevo, ultimo punto
  #4 (permalink)  
Antiguo 06/01/2013, 16:02
 
Fecha de Ingreso: diciembre-2011
Mensajes: 408
Antigüedad: 12 años, 10 meses
Puntos: 18
Respuesta: [Aporte] Lleva a producción tu app hecha en Django con Heroku

a ok pero que engine uso osea cuando cree la primera app me pedia que configurara correctamente el engine osea como lo configuro si es un addon o heroku tienes que pagar la base de datos

cuala es el engine exacto y como creo la base de datos xD
  #5 (permalink)  
Antiguo 06/01/2013, 16:12
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: [Aporte] Lleva a producción tu app hecha en Django con Heroku

En el punto "Configurando base de datos" dice como configurar tu base de datos. Es importante que lo pongas al final del archivo. Básicamente la base de datos "default" la configura "automagicamente" por medio de una librería dj_database_url.

Pero como referencia heroku te ofrece gratis una base de datos postgresql, con un limite de 10,000 registros. Y por $9 mas al mes te llevas 10,000,000 de registros.
  #6 (permalink)  
Antiguo 29/01/2013, 09:18
Avatar de minkweb  
Fecha de Ingreso: septiembre-2005
Mensajes: 443
Antigüedad: 19 años, 2 meses
Puntos: 14
Respuesta: [Aporte] Lleva a producción tu app hecha en Django con Heroku

@razpeitia excelente tuto

En mi caso uso Mysql y me toco apuntar la base de datos a un servidor externo a heroku y tambien funciona de maravilla
__________________
Juegos
Juegos iphone
  #7 (permalink)  
Antiguo 29/01/2013, 11:15
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 8 meses
Puntos: 1329
Respuesta: [Aporte] Lleva a producción tu app hecha en Django con Heroku

Cita:
Iniciado por minkweb Ver Mensaje
@razpeitia excelente tuto

En mi caso uso Mysql y me toco apuntar la base de datos a un servidor externo a heroku y tambien funciona de maravilla
¿Cuál era el problema de usar PostgreSQL en este caso? Con django es (casi) transparente el usar uno u otro motor de base de datos.

Saludos
__________________
Grupo Telegram Docker en Español
  #8 (permalink)  
Antiguo 01/02/2013, 11:58
Avatar de minkweb  
Fecha de Ingreso: septiembre-2005
Mensajes: 443
Antigüedad: 19 años, 2 meses
Puntos: 14
Respuesta: [Aporte] Lleva a producción tu app hecha en Django con Heroku

En ese momento por probar, pero obviamente no tendria problema por el ORM de django y es mas rapido trabajar con el postgress de heroku por las distancias con mi servidor de mysql
__________________
Juegos
Juegos iphone

Etiquetas: heroku
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 3 personas




La zona horaria es GMT -6. Ahora son las 05:53.