domingo, 23 de septiembre de 2012

DESPLEGAR DJANGO AHORA ES MAS FACIL, PYTHONANYWHERE

Se que la mayor ha tenido problemas con el despliegues de sus aplicaciones en Django sobretodo porque hay hostings un poco dificiles de manejar y lo digo sobre todo por aquellos que recién comienzan en Django.

Pythonanwhere es un Hosting, que brinda muchas facilidades para el despliegue de aplicaciones hechas en Django. En verdad es muy sencillo instalar un proyecto base, con tan solo un click.

Para poder desplegar su aplicación debe de iniciar sesión en pythonanywhere, es obvio que antes debieron crearse su cuenta. La pagina de este hosting es www.pythonanywhere.com.

Una vez hecho esto van a poder visualizar esto 
Que es el menú principal de pythonanywhere. Como podemos ver tenemos 5 pestañas, de las cuales 4 de ellas son de uso gratuito. La pestaña Schedule es solo para cuentas premiun y permite ejecutar scripts. 

Bueno comenzamos, para poder crear un proyecto en blanco vamos a ir a la pestaña de web y vamos a escoger la opcion del panel izquierdo que dice "Replace with a new web app" , o mejor dicho reemplazar con una nueva aplicación web pero debido a que no tenemos ninguna simplemente crearemos nuestra primera aplicación web. Esta vez vamos e elegir de entre las demás aplicaciones a Django como nuestro entorno de trabajo para desarrollo web. Pueden elegir Web2py y otros mas. 


Despues de esto les aparece una dialog o casilla en done le pedira el nombre de su aplicacion, por defecto sale "mysite" pero uds pueden cambiar ese nombre. Una vez asignado el nombre daremos click en next, para que pythonanywhere cree nuestra aplicacion base de django. Con la distribución base de trabajo. ya podran entrar a su aplicación mediante : "usuario_de_pythonanywhere.pythonanywhere.com" en mi caso freedev.pythonanywhere.com.


Les saldra la clasica pagina, con un mensaje "It Worked" ya que la pagina aun se encuentra en esarrollo y no hemos desactivado la depuración de django para hacer nuestro despligue en producción.

Después de creada nuestra aplicación daremos click en el botón "close" para cerrar el dialog. Luego vamos a ir a la pestaña "files" o archivos para entrar y editar los archivos de nuestra aplicación que se encuentran dentro de la carpeta cuyo nombre es el mismo que pusimos al crear nuestra aplicación. 

Vamos a configurar nuestra aplicación para que pueda tener una conexión a una base de datos en este caso solo tenemos "mysql", asi que haremos una configuración para "mysql". Para esto usaremos la base de datos por defecto para mysql que nos da pythonanywhere !!. Ojo, uds pueden crear otras base de datos pero deben saber que el nombre de su base de datos es iguala su "usuario$base_de_datos_creada", si creo una base de datos llamada "testing" entonces el nombre de la base de datos es <<mi_usuario + $ + mi_bd>>, es decir en mi caso "freedev$testing". El "host" para nuestra aplicación y el acceso a mysql es "mysql.server" no es guion bajo es punto. El usuario como sabran es el usuario con que el que esta su cuenta y la clave puede ser cambiada por la clave que uds quieren si ingresan en la sección de "Set my password MySQL" y dan enter, si es asi entonces la contraseña para su conexión a MySQL es esa clave. Otra cosa mas no es necesario configurar el puerto o PORT de nuesta settings.py y es mejor asi ya que pythonanywhere se encarga de eso.

DATABASES = {    'default': {        'ENGINE': 'django.db.backends.mysql',         'NAME': 'mi_usuario$mi_db',                           'USER': 'mi_usuario',                             'PASSWORD': 'mi_contraseña_mysql'',                        'HOST': 'mysql.server',                              'PORT': '',                         }}
La configuracion de "settings.py" debe quedar de esta forma. si tienen algun problema pueden consultarme, pero creo que hasta ahora todo es sencillo.


Ya con esto podemos ir a la pestaña de "Consoles" o consolas y pobrar si la configuración de nuestro proyecto es valida. Mediante el comando "Python manage.py validate", si nos vota "0 erros found", nos esta diciendo que nuestra aplicación no tiene errores y podemos seguir. Espero que esto les sirve de mucha ayuda. 

Nota: Antes de ejecutar el comando deben ver si su carpeta se encuentra con el comand "ls" para listar todo lo que tengan. Una vez hecho eso se dirigen hacia su carpeta con el comando "cd mi_carpeta", si la carpeta que quiero entrar se llama "carpetota" entonces el comando sera el siguiente "cd carpetota".

Suerte y diviértanse con Django.











11 comentarios:

  1. Buenas, muy bien tutorial! he comenzado mi primer projecto web con django y me sirvió mucho! Pero ahora que lo tengo online, cómo puedo copiar mi projecto que tengo en local, y pasarlo al host?? archivo por archivo es la única manera que veo, pero tiene que haber algo para pasar carpetas enteras no?

    Muchas gracias!

    ResponderEliminar
    Respuestas
    1. Hola tiene varias opciones puedes clonar el proyecto y luego editar y configurar para que luego lo pongas a correr o puedes usar dropbox para subir tus archivos usar el modo consola y mover la carpeta hacia donde tu quieras. Yo veo más fácil y más sencillo el hecho de usar dropbox para que subas tus archivos! En consoles puedes entrar a la consola y usas comandos para modificar y mover tus archivos! Si necesitas mas ayuda o algo mas solo escríbeme al blog y te contestare.

      Eliminar
  2. hola yo siempre escucho django aqui y alla y que pasa entonces con aplicaciones hechas por ejemplo con mod_python wsgi que esten ligadas por ejemplo a webpy no a web2py si no a webpy yo he probado web2py y no me gusto para nada pero el mas sencillo de manejar a mi gusto ha sido webpy la verdad, entonces si uno tiene una aplicacion en webpy que hace si solo te muestran esas 3 obciones.. gracias de antemano por leerme

    ResponderEliminar
    Respuestas
    1. Ahora solo tiene soporta para esas tres, ellos van a ir implementando según los usuarios pidan, el 4 botón te permite enviar un comentario a los creadores para sugerir otro framework basado en python. Y de esta manera en no mucho tiempo ellos lo implementarán y podrá ser una de las opciones a elegir como base de tus aplicaciones aunque dejame decirte que Django es lo mas completo y abarca todo lo que necesitas!

      Eliminar
    2. Por otro lado si aun así quieres instalar webpy no tienes ningún problema, puedes instalarlo desde consola, puesto que pythonanywhere no te restringe la instalación de paquetes externos que ellos soportan !! aca puedes leer todas esas baterías disponibles https://www.pythonanywhere.com/batteries_included/ espero te sirva y gracias por leer y comentar !

      Eliminar
  3. gracias a ti, por contestar, me queda claro lo que me expones, igual para mi django es como complicado la sintaxis y todo el cuento y no me corre bien en linux mint para completar.. muchas gracias danilo

    ResponderEliminar
  4. Hmmm te recomiendo usar Ubuntu es mas estandar !! Linux Mint tienes sus cosas y esta basado en ubuntu pero no es lo mismo. De todas maneras es solo configuración y si es eso te podría ayudar a configurar lo necesario, instalar un servidor desde cero y todo lo demás !! Pero sin duda Django es mucho mas sencillo y facíl de lo que crees

    ResponderEliminar
  5. tengo un projecto hecho en django pero no se usar la consola pero si tengo dropbox podrias hacer un tutorial de como pasar mi project completo por consolo usando dropbox

    ResponderEliminar
  6. Cuando creo modelos ya no me funciona mis aplicaciones django :(

    ResponderEliminar
    Respuestas
    1. Para importar los modelos usas el prefijo de la ap correspondiente solo de esa manera puedes importar o hacer uso de los modelos para verificar si tu modelo y todo esta bien puedes usar la consola y ejecutar el siguiente comando "python manage.py validate"

      Eliminar