¿Quién soy? e Introducción al desarrollo web con Django.

in #introducemyself7 years ago

Hola a todos soy Adolfo (RodasLA), tengo 22 años, vivo en Venezuela, específicamente en el Municipio Cocorote, Estado Yaracuy; soy un programador y diseñador web con más de 4 años de experiencia utilizando principalmente el lenguaje de programación Python y plataformas libres/open source, aunque actualmente por necesidad (para nada por gusto) utilizo windows en mi PC personal, como hobbies me gusta leer, así como también disfrutar y practicar la música coral y las artes plásticas. Mis principales motivaciones para unirme a esta comunidad son por 2 cosas:

1- Disfrutar mientras comparto abiertamente mis conocimientos y habilidades y
2- ¿Porqué no? Tratar de ganar beneficio de esto (sobre todo tomando en cuenta la situación de este país :D ).

Ya habiendo hecho mi introducción vamos a lo principal en este post, el primero de una futura serie si a ustedes les gusta por supuesto, hablemos del desarrollo web con Python y uno de los frameworks más populares de este lenguaje, Django:

¿Qué es Django y para que sirve?

Es un framework específicamente desarrollado para agilizar el desarrollo web y de esta manera hacer más eficiente y rápido los ciclos de desarrollo, su origen se da gracias a los programadores Adrian Holovaty y Simon Willison cuando decidieron abandonar PHP y utilizar Python (Un lenguaje de programación interpretado al igual que PHP) para la programación de sitios web de alta envergadura como lo es Lawrence.com alrededor del año 2003, está basado en una arquitectura derivada del MVC (Modelo-Vista-Controlador) llamada MPV (Modelo-Plantilla-Vista, MTV por sus siglas en inglés), hay algunas diferencias más que todo teóricas, que prácticas, aunque es bueno tenerlas en mente para evitar confusiones, click aquí para mayor información.

Así, con Django podremos crear desde webs personales, sistemas de gestión de contenido (CMS, por sus siglas en inglés) a la par o mejores que sistemas como Wordpress e incluso plataformas de eCommerce y ERP. La mayor ventaja de este framework radica en la facilidad de aprendizaje y rapidez de desarrollo que ofrece, esto en parte gracias a estar codificado en Python, teniendo una filosofía basada en la DRY.

Django Logo - Python Logo

¿Qué necesitaré?

Para comenzar esta serie de tutoriales necesitaremos las siguientes cosas:

1- 100% Verdaderas ganas de aprender (¡lo más importante! ;) ), no es obligatorio conocer Python, a lo largo de los tutoriales si ya tienen experiencia en programación verán cuán sencillo es adaptarse.
2- Computador con alguna distribución GNU/Linux preferiblemente, aunque con Windows funciona perfectamente, pero no explicaré explícitamente para esta segunda plataforma.
3- Python 3.4 o mayor, esto es sumamente importante, para el momento de esta redacción la rama estable actual de Django no soporta versiones menores de Python 3, también soporta Python 2.7, pero no se utilizará acá.
4- En algunas distribuciones la utilidad "pip" no se encuentra instalada, en Ubuntu por ejemplo, se instala con el comando: sudo apt install python3-pip; este no es el caso en Windows que viene cargado con el instalador.
5- En ésta serie comenzaremos usando Sqlite3 como base de datos, y luego integraremos con PostgreSQL, así que deben asegurarse de tenerlas instaladas (San Google les guiará).
6- Por último para instalar Django solo debemos ejecutar el siguiente comando en la terminal sudo pip install Django, de ésta manera se puede comenzar con el desarrollo.

Para aquellos que no sepan dónde deben escribir el código pueden instalar editores de texto plano como Atom y Brackets, también existen entornos de desarrollo (IDES's si prefieren el inglés) como PyCharm de JetBrains para los que les gusta ir con ayuda. Sé que algunos más experimentados me crucificarán por no recomendar primero Vim o Nano para la consola xD.

Creando mi primer proyecto.

En esta serie de tutoriales iremos aprendiendo a crear una página web de información personal, algo así como una about.me, para finalizar con el desarrollo de lo que sería un gestor de contenido sencillo para un Blog personal. Ahora lo primero que debemos hacer es crear una carpeta dónde iremos guardando el contenido de las clases, luego desde una terminal escribimos los siguientes comandos (Windows users, sorry):

$ cd /home/tuusuario/carpeta/donde/están/los/proyectos
$ django-admin.py startproject tutorial



Pueden cambiar el nombre del proyecto si quieren, con esto se generará un esquema de archivos y directorios de la siguiente manera:

- tutorial (Carpeta raíz de nuestro proyecto)
    -- tutorial (Aquí irán las configuraciones generales)
        --- \_\_init\_\_.py (Esto le dice a Python que se trata de un "*paquete python*" y no una carpeta común)
        --- settings.py (Archivo responsable de todas las configuraciones generales)
        --- urls.py (Aquí se definen las urls que serán usadas por nuestra web, luego explicaré con más detalle)
        --- wsgi.py (Punto de entrada con el cuál servidores como Apache y Nginx reconocerán su aplicación al momento de desplegarla en producción)
    -- manage.py (Con este script controlaremos la aplicación y posterior desarrollo de nuestra web)



Ahora debemos confirmar que todo ha ido bien con el siguiente comando python3 manage.py runserver, esto nos debe generar la siguiente información en nuestra consola:

tutorial-1-server-inicio.png

Y en nuestro navegador al escribir 127.0.0.1:8000 debe mostrarse así:

tutorial-1-server-firefox.png

El puerto y la dirección pueden cambiarse si se desea o si no se tiene disponible el puerto por defecto, para ello solo debemos escribir lo siguiente por ejemplo: python3 manage.py runserver 0.0.0.0:8080, la dirección 0.0.0.0 le indica a Django que use todas las IP's públicas disponibles en la conexión de la PC, se puede escribir también cualquier dirección arbitraria que esté disponible.

Siguientes pasos

Con esto ya tenemos configurado y activo nuestro primer proyecto en Django, así de fácil, en el siguiente tutorial empezaremos a crear nuestra primera "app" y como definir los modelos de datos y su posterior manipulación desde el admin de nuestro framework. Si este tema es de su agrado y desean seguir mis actualizaciones en esta página no se olviden de comentar y exponer sus consejos o dudas sobre el tema, acepto sugerencias con respecto al futuro de los "tutos". ;)

PD: Tal vez no sea un súper gurú en la materia, pero en la medida de mis posibilidades responderé a todas sus dudas e inconvenientes sobre este o cualquier tema relacionado.

¡Gracias a todos los que leyeron esto hasta el final! ¡Feliz semana!

Sort:  

Welcome to Steem @rodasla I have upvoted and sent you a tip

Bienvenido @rodasla espero tengas una grata experiencia aquí en steemit!!

¡Gracias! ;)

Bienvenido/a a Steemit! El mayordomo de la comunidad Hispanohablante te saluda!!

No te olvides de poner el tag spanish en tus posts.

Si tienes dudas acerca del funcionamiento te invito a que leas las Steemit FAQ:
Steemit FAQ #1
Steemit FAQ #2

Hemos creado tambien un chat en discord donde interactuamos los unos con los otros y nos promocionamos.

Chat @cervantes en Discord !!!
Y no te pierdas los audioconferencias entre los miembros cervantiles y los canales de promocion por categorias

https://discord.gg/pDDKJ92

Tambien estamos en Steemitchat https://steemit.chat/channel/HispanoHablantes

CONCURSO CERVANTES: Regalamos un viaje al SteemFest2 al finalista
valorado en 2000 SBD!!!

https://steemit.com/spanish/@cervantes/concurso-cervantes-4a-semana-paco-de-lucia



No te olvides de votar @cervantes como witness en esta pagina:

https://steemit.com/~witnesses


Este bot de bienvenida fue creado por @moisesmcardona para el equipo @cervantes basado en el script original de @felixxx



¡Hola, @rodasla!

Te invito a que te unas al chat Trail Hispano en Discord en donde podrás compartir tus posts y hablar con toda la comunidad.

Además puedes a unirte al Trail, el cual es un proyecto del chat en donde puedes recibir votos en tus posts. ¡Recibe alrededor de 80 votos en cada post y más según la gente se vaya uniendo!

Para unirte al trail, accede a https://trail.steemhispanos.chat. Para más información, te invito a que leas el siguiente post: Tutorial actualizado Trail hispano en Discord, herramientas y reglas 🙂


Para apoyarte en esta red, te comencé a segir
y he votado este post.

Nuevamente, te doy la bienvenida a Steemit y no dudes en contestar este comentario si tienes alguna duda.

Esta es una iniciativa de @moisesmcardona. Considera votándolo como Witness en https://steemit.com/~witnesses

Lee más acerca de mi Witness presionando aquí.

Congratulations @rodasla! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

You made your First Comment

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

Congratulations @rodasla! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

Bienvenido a esta gran plataforma brother @rodasla. Exito en este nuevo proyecto. Te Sigo!!!...

¡Gracias! El fin de semana publico el 2do capítulo.

Congratulations @rodasla! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!