Django-Docker - Django Installation Guide on Docker

Related tags

DjangoDjango-Docker
Overview

Guía de instalación del Framework Django en Docker

Introducción:

Con esta guía podrán instalar y trabajar con Django en Docker a través de Python

Conceptos básicos:

Docker: es una herramienta de código abierto diseñada para desarrollar y encapsular diversas aplicaciones, Docker tiene la facultad de separar tu proyecto funcional de tu computador, lo que se llama container el cual posee su propio sistema operativo y todas las configuraciones básicas para trabajar de forma correcta, finalmente gracias a esto se pueden desarrollar aplicaciones sin problemas de compatibilidad ya que este container funcionaria en cualquier computador.

Django: es un entorno de trabajo de alto nivel enfocado al desarrollo web integrado usando Python como su lenguaje principal, es un entorno robusto con la capacidad de hacer proyectos complejos y profesionales.

Instalación Docker:

En Windows 10:

Primero que todo debemos de instalar un backend de Ubuntu pues Docker corre nativamente en Linux para ello debemos de comenzar con instalar WSL2 encargado de correr este backend

Primero abrimos el Cmd o powerhsell con privilegios de administrador :

powershell

Luego nos saldrá una ventana como esta:

cmd

Paso 2

En ella escribimos :

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart en el PowerShell

Paso 3

Se comenzará a ejecutar el comando que tomará algunos minutos en donde instalará el WSL luego de esto seguimos con el siguiente comando:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Este comando se encargará de activar la máquina virtual previamente instalada, hecho esto

Debemos de reiniciar el computador después de este paso

Paso 4

Debemos de descargar la actualización del Kernel de Linux del siguiente enlace:

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

Paso 5

Abrimos de nuevo el PowerShell como administrador y ejecutamos:

wsl --set-default-version 2

Paso 6

Instalamos la distribución de Linux que mas nos guste en este caso la más recomendada es Ubuntu:

https://aka.ms/wslstore

El enlace anterior te abrirá el Microsoft Marketplace, donde allí encontrarás diferentes distribuciones de Linux.

marketplace

Hacemos Clic en obtener

obtener

La primera vez que abres la aplicación te pedirá crear un nombre de usuario y contraseña.

cmd

¡Felicitaciones ya tienes instalado Linux en Windows 10!

Paso 6

Hechos todos los pasos anteriores ahora si comenzamos con Docker, para ello abrimos el siguiente enlace:

Install Docker Desktop on Windows | Docker Documentation

Docker

Nos centramos en esta vista y hacemos clic a Docker Dektop for Windows se comenzará a descargar un archivo ejecutable.

installer

Es importante aclarar que esta aplicación pide como requisitos:

requisitos

Después de la instalación abrimos la aplicación de Docker:

docker

Una vez ejecutada la aplicación aparecerá en la barra de tareas este icono.

barra

Que indica que el Docker está activado y ejecutando

Finalmente tenemos la aplicación lista para trabajar en ella

app

Creación del Docker que contendrá al Framework Django:

Inicialmente debemos de crear una carpeta de trabajo, puede tener cualquier nombre siempre y cuando sea sin caracteres especiales y sin espacios:

Los comandos para usar son mkdir nombrecarpeta, cd nombrecarpeta

cmd

Creamos un archivo requirements.txt en el cual pondremos a Django como uno de los packpages

Ya que será el que vamos a utilizar

requisitos

En el terminal que teníamos abierto anteriormente ejecutamos:

pip install -r requirements.txt

Una vez instalado Django en tu entorno de trabajo comenzamos por crear un proyecto de esta forma:

django-admin startproject Mipagina

Automáticamente te creará una carpeta con el nombre del proyecto

workspace

De esta forma, con el manage.py podrás controlar todo tu proyecto

A continuación, nos ubicamos dentro de la carpeta del proyecto:

cd Mipagina

Luego :

Python manage.py runserver

server

Abrimos el enlace que nos arroja el runserver:

http://127.0.0.1:8000/

¡Ya tenemos nuestro primer sitio!

Los pasos para seguir son crear las aplicaciones para añadirle vistas y hacerlo más funcional

Si embargo no lo consideramos en esta guía pues nos compete dockerizar el Django

Para ello creamos un archivo Dockerfile en nuestro entorno de desarrollo

En ella copiamos el siguiente código:

# Dockerfile

# The first instruction is what image we want to base our container on

# We Use an official Python runtime as a parent image

FROM python

# Allows docker to cache installed dependencies between builds

COPY requirements.txt requirements.txt

RUN pip install --no-cache-dir -r requirements.txt

# Mounts the application code to the image

COPY . code

WORKDIR /code

EXPOSE 8000

# runs the production server

ENTRYPOINT ["python", "Mipagina/manage.py"]

CMD ["runserver", "0.0.0.0:8000"]

dockerfile

Luego en la consola:

cd .. para regresar a la carpeta raíz que inicialmente creamos

con este comando creamos el Docker con el nombre Python-django-app y como parámetro de entrada . que indica que es en la misma carpeta donde estará el dockerfile

docker build -t python-django-app -f ./Dockerfile.txt .

luego de ejecutar este comando saldrá esto:

bash

Indicando que nuestro contenedor ha sido creado de forma exitosa

Con el comando:

docker run -it -p 8000:8000 python-django-app

Lanzamos el contenedor exponiéndolo en el puerto 8000

El nombre del contendor lo crea automáticamente ya que nosotros estamos especificando únicamente nuestro nombre de la imagen.

¡Con esto ya tenemos dockerizado nuestro proyecto de Django!

construido con 🛠️

Owner
Victor manuel torres
Victor manuel torres
A small Django app to easily broadcast an announcement across a website.

django-site-broadcasts The site broadcast application allows users to define short messages and announcements that should be displayed across a site.

Ben Lopatin 12 Jan 21, 2020
Pinax is an open-source platform built on the Django Web Framework.

Symposion Pinax Pinax is an open-source platform built on the Django Web Framework. It is an ecosystem of reusable Django apps, themes, and starter pr

Pinax Project 295 Mar 20, 2022
Django With VueJS Blog App

django-blog-vue-app frontend Project setup yarn install Compiles and hot-reload

Flavien HUGS 2 Feb 04, 2022
A real-time photo feed using Django and Pusher

BUILD A PHOTO FEED USING DJANGO Here, we will learn about building a photo feed using Django. This is similar to instagram, but a stripped off version

samuel ogundipe 4 Jan 01, 2020
A BitField extension for Django Models

django-bitfield Provides a BitField like class (using a BigIntegerField) for your Django models. (If you're upgrading from a version before 1.2 the AP

DISQUS 361 Dec 22, 2022
Developer-friendly asynchrony for Django

Django Channels Channels augments Django to bring WebSocket, long-poll HTTP, task offloading and other async support to your code, using familiar Djan

Django 5.5k Jan 06, 2023
Bootstrap 4 integration with Django.

django-bootstrap 4 Bootstrap 4 integration for Django. Goal The goal of this project is to seamlessly blend Django and Bootstrap 4. Requirements Pytho

Zostera B.V. 980 Dec 29, 2022
A simple plugin to attach a debugger in Django on runserver command.

django-debugger A simple plugin to attach a debugger in Django during runserver Installation pip install django-debugger Usage Prepend django_debugger

Sajal Shrestha 11 Nov 15, 2021
Log and View requests made on Django

Django Request Viewer Log and view requests made on your Django App Introduction Recently, @ichtrojan and @toniastro released horus, a request logger

Akere Mukhtar 26 May 29, 2022
django-idom allows Django to integrate with IDOM

django-idom allows Django to integrate with IDOM, a package inspired by ReactJS for creating responsive web interfaces in pure Python.

113 Jan 04, 2023
Use minify-html, the extremely fast HTML + JS + CSS minifier, with Django.

django-minify-html Use minify-html, the extremely fast HTML + JS + CSS minifier, with Django. Requirements Python 3.8 to 3.10 supported. Django 2.2 to

Adam Johnson 60 Dec 28, 2022
A package to handle images in django

Django Image Tools Django Image Tools is a small app that will allow you to manage your project's images without worrying much about image sizes, how

The Bonsai Studio 42 Jun 02, 2022
Phoenix LiveView but for Django

Reactor, a LiveView library for Django Reactor enables you to do something similar to Phoenix framework LiveView using Django Channels. What's in the

Eddy Ernesto del Valle Pino 526 Jan 02, 2023
A CTF leaderboard for the submission of flags during a CTF challenge. Built using Django.

🚩 CTF Leaderboard The goal of this project is to provide a simple web page to allow the participants of an CTF to enter their found flags. Also the l

Maurice Bauer 2 Jan 17, 2022
Tutorial para o projeto negros.dev - A Essência do Django

Negros Dev Tutorial para o site negros.dev Este projeto foi feito com: Python 3.8.9 Django 3.1.8 Bootstrap 4.0 Como rodar o projeto? Clone esse reposi

Regis Santos 6 Aug 12, 2022
Automatic caching and invalidation for Django models through the ORM.

Cache Machine Cache Machine provides automatic caching and invalidation for Django models through the ORM. For full docs, see https://cache-machine.re

846 Nov 26, 2022
Neighbourhood - A python-django web app to help the residence of a given neighborhood know their surrounding better

Neighbourhood A python-django web app to help the residence of a given neighborh

Levy Omolo 4 Aug 25, 2022
Django query profiler - one profiler to rule them all. Shows queries, detects N+1 and gives recommendations on how to resolve them

Django Query Profiler This is a query profiler for Django applications, for helping developers answer the question "My Django code/page/API is slow, H

Django Query Profiler 116 Dec 15, 2022
WeatherApp - Simple Python Weather App

Weather App Please star this repo if you like ⭐ It's motivates me a lot! Stack A

Ruslan Shvetsov 3 Apr 18, 2022
Use heroicons in your Django and Jinja templates.

heroicons Use heroicons in your Django and Jinja templates. Requirements Python 3.6 to 3.9 supported. Django 2.2 to 3.2 supported. Are your tests slow

Adam Johnson 52 Dec 14, 2022