Está en la página 1de 20

Tutorial Deploy Django

Desplegando un proyecto de prueba


Hacer un despliegue requiere varias configuraciones, para ello debemos saber que existen muchas
empresas que se dedican al servicio para poder desplegar proyectos en la nube como Heroku, AWS,
asimismo se pueden desplegar en un servidor privado como un VPS, para cualquiera de estos casos se
requiere conocimeintos de administración de sistemas en infraestructura.

1. Nosotros lo haremos desde:

Que nos brinda la posibilidad de desplegar un proyecto gratuito de una forma bastante sencilla y así
por lomenos tendremos una experiencia práctica.

2. Entraremos a la página:

https://www.pythonanywhere.com/

3. Y nos crearemos nuestra cuenta básica o de pricipiante

Ya tenemos todo perfecto:

4. A estas alturas ya contamos con nuestro propio subdominio que podemos acceder con nuestro
propio usurio, recuerden que nos permite un solo proyecto gratuito por usuario:

/1
Tutorial Deploy Django

Para ello debes escribir solo la cuenta de user y:

http://arturogrottoli.pythonanywhere.com/

De momento no tenemos nada.

/2
Tutorial Deploy Django

5. Si nos fijamos en Dashboard:

Tenemos 512 MB para almacenar, no es poco la verdad.

6. Ahora vamos a crear nuestro entorno virtual para desplegar dentro nuestro proyecto, muy
parecido al entorno virtual que creamos, acá lo haremos de una forma más tradicional.

7. Para ello iremos al apartado

8. Iniciaremos una terminal Bash dentro de esta máquina:

9. Una vez que estamos dentro ya podemos ejecutar algunos comandos y empezaremos creando un
entorno virtual y para ello utilizaremos:

/3
Tutorial Deploy Django

(El nombre viene de la version que tenemos, recuerden que la podemos ver de la siguiente forma)

Si no funciona optar por uno más antiguo:


mkvirtualenv –python=3.9 django2

10. Ya nos debe mostrar el entorno como lo hemos creado:

11. Para desactivar se usa igual:


deactivate
12. Pero para activarlo

source "<absolute_path_recommended_here>/.env/bin/activate"

13. Para ver los paquetes que tenemos instalados podemos hacer:

14. Acá obviamente usaremos paquetes de Django como Pillow, y Django CK-Editor, etc.

15. Crearemos un archivo requirements del tipo txt dentro de nuestro repositorio local, antes
debemos hacer que se muestren las extensiones de los archivos.

/4
Tutorial Deploy Django

16. Lo abriremos con nuestro editor VSC y dentro le diremos que pip queremos que sean instalados:

Estos son los tres paquetes que debemos instalar para que funcione nuestro proyecto.

17. Ahora le indicaremos que versiones son mas o menos compatibles:

18. Volvamos a nuestra terminal de Git local y escribiremos:

19. Haremos un commit:

20. Y finalmente confrmamos los cambios:

/5
Tutorial Deploy Django

21. Si vamos a Github ya debería estar:

22. Volvemos a nuestra terminal bash clonaremos nuestro proyecto y así instalar nuestros paquetes
dentro de nuestor entorno virtual:

Recuerden que debemos copiarlo desde github nuestro repositorio.

23. Si hacemos un ls –la podemos observar los archivos que tenemos, incluso los ocultos:

24. Instalaremos nuestras dependencias en nuestro proyecto, para ello, entramos al directorio del
repositorio clonado:

La terminal se limpia con Ctrl + L

25. Procedemos a instalar:

26. Comienza a instalarse:

/6
Tutorial Deploy Django

27. Ya con esto tenemos nuestro entorno virtual ya preparado y con esto podríamos ejecutar el
manage.py . Ingresemos al proyecto:

28. Escribiremos:

Lo que va hacer es comprobar una serie de configuraciones que deberíamos utilizar parta hacer un
desplieque correcto:

De todo lo que ahí dice deberían interesarnos dos cosas:

Y aquí nos advierte que en la fase de producción no debemos tener el Debug en true.
Y el segundo warning es:

Que esa variable no debe estar vacía durante el despliegue, esta variable le indica a Django desde
qué servidores o dominios puede tener acceso alguien y él tiene que responder, en nuestor caso
sería el subdomio al cual accedermos para ver la página

29. Lo vamos a configurar, lo hacemos dede el menú:

/7
Tutorial Deploy Django

30. Nos vamos metiendo hasta webpersonal para ver los archikvos de configuración y nos adentramos
hasta settings.py

31. Editaremos los campos, en primer lugar lo que nos sugería el pre-deploy_

32. Y en la línea 29:

El subdominio de mi empresa
Guardamos los cambios.

33. Volvemos a nuestra terminal Bash y ejecutamos de nuevo el check –deploy y esos dos avisos ya no
nos aparecen.

34. Seguramente se deben estar preguntando por la bbdd, pero al haberla clonado en el repositorio,
ya vive allí.

35. Necesitamos crear una app que se encargue de mantener el servicio de Django en marcha. Lo
haremos desde web:

/8
Tutorial Deploy Django

36. Le hacemos clic:

37. Y me tira algunos detalles:

Damos en:

38. Vemos que aunque nos aparece Django, lo que va hacer es crearnos otro proyecto al que ya
tenemos:

Además que aun no hay soporte para Django 2

39. Crearemos una configuración manual para esta nueva webapp:

/9
Tutorial Deploy Django

40. Seleccionamos:

41. Y adentro nos explica un poco como debemos configurarla y aparece la palabra WSGI, que es,
presionamos next y debería crearla.

En teoría la tenemos creada y si hacemos clic en el enlace ya accedemos a nuestra página:

Que es una página de prueba. Y ¿de dónde sale toda es info?

42. Si lo abrimos veremos que hay toda una configuración y tenemos todo lo qu aparece en la web
app que creamos.
43. En Code, debemos configurar el sourde code, es decir, el directorio en donde está el proyecto,
esto lo hacemos desde el bash y escribimos pwd:

Lo copiamos

/10
Tutorial Deploy Django

44. Y lo pegamos:

45. Luego nos falta confogurar el entorno virtual que nos va perm itir poner en marcha nuestro
proyecto:

46. La conseguimos desde el bash escribiendo:

Copiamos la dirección
/home/Charlyred/.virtualenvs/django2

Sin bin/python

47. Y la pegamos:

48. Y ya tendríamos:

49. Ya podemos volver al archivo WSGI

/11
Tutorial Deploy Django

50. Antes que nada, debemos comentar los log files o registros, que sirven para verificar si en nuestro
proyecto ha ocurrido algún error, etc:

51. Volviendo al WSGI hacemos clic encima para poder editarlo, es decir, seleccionamos todo y lo
borramos, así nomás. Y ¿por qué así? Por que desde el propio proveedor de Pythoanywhere ya
nos dan una configurtación por defecto, veamos este manual:
https://help.pythonanywhere.com/pages/FollowingTheDjangoTutorial/

Y nos copiamos esto:

52. Por supuesto que acá hay que cambiar dos cosas

Esta url la volvemos a copiar desde el bash, acordarse de que debemos estar parados en donde se
encuentra el manage.py:

53. Y nos debe quedar:

/12
Tutorial Deploy Django

54. Lo mismo que con la línea de:

55. Y la cambiamos por este nombre:

Guardamos este archivo y además presionamos para actualizar el proyecto:

56. Ahora vamos a la dirección de la web:

57. Ya deberíamos ver lo que tenemos en nuestro proyecto.


58. Sin embargo hay cierto archivos, de lo stipo media que no se pueden ver, esto es por lo que
explicamos antes que Django de alguna manera no se encarga de ellos y por ende lo haremos de
esta manera, nos irems un poco más abajo y en:
59.

/13
Tutorial Deploy Django

Añadiremos la URL donde estaremos sirviendo archivos estáticos, hacemos:

60. Toca añadir los path, que solo debemos tomar de referencia en la parte superior (Code)

61. Y lo pegamos:

Vemos como queda


:

62. De forma similar con el otro, media

/14
Tutorial Deploy Django

63. Si bien el diorectorio media sí existe, no es el caso de static, lo haremos manualmente,para ello
editaremos el fichero settings,py e iremos endonde tenemos definida STATIC:

64. Y hacemos estos cambios:

Guardamos.
65. Volvemos a la terminal de bash y escribimos:

Y automaticamente empieza a buscar todos los archivos media del proyecto y las va a copiar en el
fichero static.
66. Una vez hecho esto, debemos recargar el proyecto:

Esto es similar al python manage.py runserver


67. Cuando regresamos a la página, ya deberíamos estar viendo todas las imágenes.
68. Lo que no funcionaría es el formulario de contacto, y si lo tuviéramos, da esto:

Que significa que el propio servidor nos ha denegado la conexión (error 111) que es que el
servidor no ha podido enviar el email. Y esto es que el envío de mails está limitado para los
usuarios a gratuitos. Y ellos nos recomiendan que configuremos un correo de gmail:

/15
Tutorial Deploy Django

69. Lo útimo es que cada tres meses debemos presionar ese botón

Ya que si no lo extendemos, se va desactivar.


Otro
https://www.youtube.com/watch?v=vYUfcZCXfjM

/16
Tutorial Deploy Django

Despliegue con Heroku


1. Lo primero que hay que hacer es instalarse Gunicorn, que es un servidor para http.

2. Luego para realizar la conexión con la base de datos debemos instalar el gestor ya que
Heroku nos provee de una bbdd que no se encuentra en el mismo servidor.

3. Para correr el servidor haremos uso de ciertas variables de entorno.

Usaremos la librería decouple

Con esto tenemos todo lo necesario para poder realizar el deploy.

4. Necesitamos generar nuestro archivo requierements.txt, en donde colocaremos todas las


dependencias del proyecto, para ello hacemos:

5. Al hacer esto en nuestro proyecto, se genera esto:

6. Modificaremos nuestro proyecto, para ello lo haremos en el settings.py

7. Luego asignamos los host válidos para mi proyecto:

/17
Tutorial Deploy Django

8. Luego configuraremos la parte de la bbdd:

9. Acto seguido trabajaremos con los archivos estáticos:

10. Nos apoyaremos en esta librería para que nos ayude con el problema de los archivos
estáticos:

11. Cada vez que decidamos poner una librería a nuestro proyecto hay que actualixzar el
requirements.txt

Y vemos:

/18
Tutorial Deploy Django

12. Procedemos a agregar un nuevo middle:

13. Finalizamos agregando una nueva línea al final del settings:

Es obligatoria para mostrar archivos estáticos.

14. Vamos al archivo urls:

Además:

15. Generaremos una nueva carpeta llamada STATIC, pero esta ya la tenemos

16. Hay que generar el archivo llamado Procfile en la raíz

Me quedé en 12’27

https://www.youtube.com/watch?v=XdZeg3iP5BM&ab_channel=codigofacilito

/19
Tutorial Deploy Django

/20

También podría gustarte