Introducción
Creación de entrono virtual
¡Tu primer proyecto en Django!
Crear una aplicación
djangogirls
donde está el archivo manage.py
):blog
y ahora contiene una cantidad de archivos. Los directorios y archivos en nuestro proyecto deberían verse así:mysite/settings.py
-- ábrelo en el editor. Tenemos que encontrar INSTALLED_APPS
y agregar una línea que contiene 'blog.apps.BlogConfig',
justo por encima de ]
. El producto final debe tener este aspecto:Crear el modelo del Post
En el archivo blog/models.py
definimos todos los objetos llamados Models
. Este es un lugar en el cual definiremos nuestra entrada del blog.
Abre blog/models.py
en el editor, borra todo, y escribe código como este:
Crear tablas para los modelos en tu base de datos
El último paso aquí es agregar nuestro nuevo modelo a la base de datos. Primero tenemos que hacer saber a Django que hemos hecho cambios en nuestro modelo. (Lo acabamos de crear!) Ve a tu terminal y escribe python manage.py makemigrations blog
. Se verá así:
Nota: Recuerda guardar los archivos que edites. De otro modo, tu computador ejecutará las versiones anteriores lo que puede ocasionar errores inesperados.
Django preparó un archivo de migración que ahora tenemos que aplicar a nuestra base de datos. Escribe python manage.py migrate blog
y el resultado debería ser:
Administrador de Django
Para agregar, editar y borrar los posts que hemos modelado, usaremos el administrador (admin) de Django.
Abre el fichero blog/admin.py
en el editor y reemplaza su contenido con esto:
Como puedes ver, importamos (incluimos) el modelo Post definido en el capítulo anterior. Para hacer nuestro modelo visible en la página del administrador, tenemos que registrar el modelo con admin.site.register(Post)
.
Ok, es hora de ver nuestro modelo Post. Recuerda ejecutar python manage.py runserver
en la consola para correr el servidor web. Ve a tu navegador y escribe la dirección http://127.0.0.1:8000/admin/. Verás una página de inicio de sesión como esta:
python manage.py createsuperuser
y pulsa enter.intro
para continuar. Luego, verás algo así (donde username y email serán los que escribiste anteriormente):Vuelve a tu navegador. Entra con las credenciales de super usuario que escogiste; verás el panel de administrador de Django.
Ve a 'Posts' y curiosea un poco. Añade cinco o seis publicaciones en tu blog. No te preocupes por el contenido -- solo será visible para ti en tu ordenador -- puedes copiar y pegar texto de este tutorial para ir más rápido. :)
Asegúrate de que al menos dos o tres posts (pero no todos) tengan la fecha de publicación definida. Esto será muy poderoso después.
Instalar Git
Puedes descargar Git desde git-scm.com. Puedes hacer click en "Next" en todos los pasos excepto en dos: cuando se te pregunte que selecciones tu editor, selecciona Nano, y en el paso "adjusting your PATH environment", selecciona "Use Git and optional Unix tools from the Windows Command Prompt" (la última opción). Aparte de eso, los valores por defecto son correctos. "Checkout Windows-style, commit Unix-style line endings" tampoco necesita corrección.
No olvides reiniciar el Símbolo del Sistema o el PowerShell una vez que la instalación se complete con éxito.
Crear nuestro repositorio Git
Git sigue los cambios realizados a un grupo determinado de archivos en lo que llamamos un repositorio de código (abreviado "repo"). Vamos a crear uno para nuestro proyecto. Abre la consola y ejecuta los siguientes comandos en el directorio de djangogirls
:
Inicializar el repositorio de git es algo que sólo tenemos que hacer una vez por proyecto (y no tendrás que volver a teclear tu nombre de usuario y correo electrónico nunca más).
Git llevará un seguimiento de los cambios realizados en todos los archivos y carpetas en este directorio, pero hay algunos archivos que queremos que ignore. Esto lo hacemos creando un archivo llamado .gitignore
en el directorio base. Abre tu editor y crea un nuevo archivo con el siguiente contenido:
Y guárdalo como .gitignore
en la carpeta "djangogirls".
Te recomendamos utilizar el comando git status
antes de git add
o en cualquier momento en que no sepas muy bien lo que ha cambiado. Esto te ayudará a evitar sorpresas, como subir cambios o archivos que no queríamos subir. El comando git status
muestra información sobre cualquier archivo no seguido ("untracked"), modificado ("modified"), preparado ("staged"), el estado de la rama y muchas cosas más. La salida debería ser parecida a esto:
Y finalmente guardamos nuestros cambios. Ve a la consola y ejecuta estos comandos:
Subiendo tu código a Github
Vete a GitHub.com y regístrate para obtener una cuenta de usuario nueva y gratuita. (Si ya lo hiciste en la preparación del taller, ¡eso es genial!) Asegúrate de recordar tu contraseña (agrégala a tu administrador de contraseñas, si usas uno).
A continuación, crea un nuevo repositorio con el nombre "my-first-blog". Deja el checkbox "initialize with a README" sin marcar, deja la opción de .gitignore vacía (ya lo hemos hecho manualmente) y deja la licencia como None.
En la siguiente pantalla, verás la URL para clonar el repo, que tendrás que usar en los comandos que van a continuación:
Ahora necesitas enlazar el repositorio Git en tu ordenador con el repositorio de GitHub.
Escribe lo siguiente en la consola (cambia <your-github-username>
por tu nombre de usuario de GitHub, pero sin los símbolos < y > -- fíjate en que la URL debería coincidir con la URL para clonar el repo que acabas de ver):
Cuando hagas push a GitHub, te preguntará tu usuario y password de GitHub, y después de introducirlos, deberías ver algo como esto:
Tu código ya está subido a GitHub. ¡Ve y compruébalo! Encontrarás que está en buena compañía
Configurar nuestro blog en PythonAnywhere
Crea una cuenta en PythonAnywhere
PythonAnywhere es un servicio para ejecutar código Python en servidores "en la nube". Lo vamos a usar para alojar nuestro sitio para que esté disponible en Internet.
Almacenaremos del blog que estamos construyendo sobre Python Anywhere. Crea una cuenta como "Principiante/Beginner" en Python Anywhere (el modo gratuito está bien, no necesitas una tarjeta de crédito).
Crear un token para la API de PythonAnywhere
Este paso solo necesita ser completado una vez. Una vez que te hayas registrado en PythonAnywhere, serás llevado a tu tablón principal. Encontrarás el enlace a la página de tu "Cuenta" en la esquina superior derecha:
Configurar nuestro sitio en PythonAnywhere
Vuelve al dashboard de PythonAnywhere haciendo click en el logo, y escoge la opción de iniciar una consola "Bash" – esta terminal es como la que hay en tu ordenador, pero en el servidor de PythonAnywhere.
Para desplegar una aplicación web en PythonAnywhere necesitas descargar tu código de GitHub y configurar PythonAnywhere para que lo reconozca y lo sirva como una aplicación web. Hay formas de hacerlo manualmente, pero PythonAnywhere tiene una herramienta automática que lo hará todo por nosotros. Lo primero, vamos a instalar la herramienta:
Eso debería mostrar en pantalla algunos mensajes como Collecting pythonanywhere
, y finalmente una linea diciendo que ha terminado bien: Successfully installed (...) pythonanywhere- (...)
.
Ahora ejecutaremos el asistente para configurar automáticamente nuestra aplicación desde GitHub. Teclea lo siguiente en la consola de PythonAnywhere (no te olvides de usar tu propio nombre de usuario de GitHub en lugar de <your-github-username>
, para que la URL sea como la URL de clonar el repo de GitHub):
En PythonAnywhere todos estos pasos están automatizados, pero son los mismos que tendrías que seguir en cualquier otro proveedor de servidores.
Lo más importante que debes notar en este momento es que tu base de datos en PythonAnywhere está totalmente separada de tu base de datos en tu propia computadora, por lo que puedes tener diferentes publicaciones y cuentas de administrador. Como consecuencia, igual que lo hicimos en tu ordenador, tenemos que crear la cuenta de administrador con el comando createsuperuser
. PythonAnywhere ya ha activado el virtualenv automáticamente, así que lo único que tienes que hacer es ejecutar:
¡Tu primera URL de Django!
¡Es hora de crear nuestra primera URL! Queremos que 'http://127.0.0.1:8000/' sea la página de inicio del blog y que muestre una lista de post.
También queremos mantener limpio el archivo mysite/urls.py
, así que vamos a importar las urls de nuestra aplicación blog
en el archivo principal mysite/urls.py
.
Vamos, añade la línea para importar blog.urls
. Tú también necesitarás cambiar la línea desde django.urls...
porque estaremos usando la función include
aquí, así que se necesitará añadir ese import a la línea.
El archivo mysite/urls.py
debería verse ahora así:
blog.urls
Crea un nuevo fichero vacío llamado urls.py
en el directorio blog
, y ábrelo en el editor de código. ¡Vale! Añade las dos primeras líneas.
Aquí estamos importando la función de Django path
y todos nuestras views
desde la aplicación blog
(no tenemos una aun, pero veremos eso en un minuto!)
Luego de esto, podemos agregar nuestro primer patrón URL:
Como puedes ver, estamos asociando una vista (view
) llamada post_list
a la URL raíz. Este patrón de URL coincidirá con una cadena vacía y el solucionador de URL de Django ignorará el nombre de dominio (es decir, http://127.0.0.1:8000/) que prefija la ruta de URL completa. Este patrón le dirá a Django que views.post_list
es el lugar correcto al que ir si alguien entra a tu sitio web con la dirección 'http://127.0.0.1:8000/'.
La última parte name='post_list'
es el nombre de la URL que se utilizará para identificar a la vista. Puede coincidir con el nombre de la vista pero también puede ser algo completamente distinto. Utilizaremos las URL con nombre más delante en el proyecto así que es importante darle un nombre a cada URL de la aplicación. También deberíamos intentar mantener los nombres de las URL únicos y fáciles de recordar.
Si tratas de visitar http://127.0.0.1:8000/ ahora, encontrarás un mensaje de error 'web page not available' a algo así. Esto es porque el servidor (¿recuerdas que escribimos runserver
?) ya no está funcionando. Mira la ventana de la consola del servidor para saber por qué.
blog/views.py
Vale, abre este fichero en el editor y mira lo que hay en él.
No hay demasiadas cosas aquí todavía.
Recuerda que las líneas que comienzan con #
son comentarios - significa que Python no las ejecutará.
Creemos una vista (view) como sugiere el comentario. Añade la siguiente mini-vista por debajo:
Como puedes ver, hemos creado una función (def
) llamada post_list
que acepta request
y return
una función render
que reproduce (construye) nuestra plantilla blog/post_list.html
.
Guarda el archivo, ve a http://127.0.0.1:8000/ y mira lo que hemos hecho.
¡Otro error! Leamos lo que está pasando ahora:
¡Tu primera plantilla!
Crear una plantilla significa crear un archivo de plantilla. Todo es un archivo, ¿verdad? Probablemente hayas notado esto ya.
Las plantillas se guardan en el directorio de blog/templates/blog
. Así que primero crea un directorio llamado templates
dentro de tu directorio blog. Luego crea otro directorio llamado blog
dentro de tu directorio de templates:
blog
└───templates
└───blog
(Tal vez te estés preguntando por qué necesitamos dos directorios llamados blog
– como verás más adelante, es una convención de nombres que nos facilitará la vida cuando las cosas se pongan más complicadas.)
Y ahora crea un archivo post_list.html
(déjalo en blanco por ahora) dentro de la carpeta blog/templates/blog
.
Mira cómo se ve su sitio web ahora: http://127.0.0.1:8000/
Comentarios
Publicar un comentario