Desarrollar una aplicación backend robusta y escalable utilizando Django que integre una interfaz de administrador intuitiva para la gestión eficiente de datos y funcionalidades junto con un REST API completo que facilite la comunicación con las aplicaciones cliente de tal forma que garantice la seguridad, el rendimiento y la extensibilidad del sistema.
Desde la línea de comandos
ambiente de desarrollo
, con: python -m venv environment
environment\Scripts\activate
Nota: Instrucciones para Unix o MacOS
Crea un repositorio en GitHub con el nombre backend.
Desde la línea de comandos
cd backend
django
, con: pip install django
Desde la línea de comandos
django-admin startproject backend .
code .
python manage.py runserver
(STOP 1) Revise los cambios en el navegador en el URL: http://127.0.0.1:8000/
WSGI
(Web Server Gateway Interface), usado en el despliegue de aplicaciones Django.Desde la línea de comandos
python manage.py startapp main
Edite el archivo backend/settings.py, con:
INSTALLED_APPS = [
...
'main',
]
Edite el archivo backend/urls.py, con:
from django.urls import ... , include
urlpatterns = [
...
path('', include('main.urls')),
]
Cree y modifique el archivo main/urls.py, con:
function-based view
), con el alias main_index. from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='main_index'),
]
Edite el archivo main/views.py, con:
...
# Create your views here.
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, World!")
Desde la línea de comandos
python manage.py runserver
(STOP 2) Revise los cambios en el navegador para las URLs:
Descargue y descomprima los archivos base_django.zip y static_django.zip en la raíz del proyecto.
backend/ <!-- proyecto -->
├── backend/
├── main/ <!-- aplicación -->
├── static/ <!-- archivos estáticos -->
│ └──css/
│ └──js/
│ └──img/
└── templates/ <!-- plantillas -->
└──main
└──base.html
Edite el archivo backend/settings.py, con:
TEMPLATES = [
{
...
'DIRS': [BASE_DIR /'templates'],
...
}
]
Edite el archivo main/views.py, con:
...
def index(request):
# return HttpResponse("Hello, World!")
return render(request, 'main/base.html')
(STOP 3) Revise los cambios en el navegador para las URLs:
En el archivo backend/settings.py:
INSTALLED_APPS = [
...
'django.contrib.staticfiles',
'main',
]
...
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/5.1/howto/static-files/
STATIC_URL = ...
# Directorios adicionales donde buscar archivos estáticos
STATICFILES_DIRS = [
BASE_DIR / STATIC_URL,
]
...
Modifique el archivo templates/main/base.html, con:
{% load static %}
<!DOCTYPE html>
...
<head>
...
<!-- Local stylesheets -->
<link rel="stylesheet" href="{% static 'css/tailwind.output.css' %}">
...
<!-- Local script files -->
<script src="{% static 'js/init-alpine.js' %}"></script>
...
<!-- Local script files -->
<script src="{% static 'js/charts-lines.js' %}" defer></script>
<script src="{% static 'js/charts-pie.js' %}" defer></script>
</head>
(STOP 4) Revise los cambios en el navegador para las URLs:
Cree el archivo templates/main/index.html, con:
<!-- Extend "main/base.html" -->
{% extends "main/base.html" %}
<!-- START - Block title -->
{% block title %}
Backend - Inicio
{% endblock %}
<!-- END - Block title -->
<!-- START - Block content -->
{% block content %}
<div class="flex flex-col flex-1 w-full">
Header & Data
</div>
{% endblock %}
<!-- END - Block content -->
Modifique el archivo templates/main/base.html, con:
<head>
...
<title>
{% block title %}
Windmill Dashboard
{% endblock %}
</title>
...
</head>
<body>
...
<!-- START - Block content -->
{% block content %}
<div> ... </div>
{% endblock %}
<!-- END - Block content -->
</body>
...
Edite el archivo main/views.py, con:
...
def index(request):
# return HttpResponse("Hello, World!")
# return render(request, 'main/base.html')
return render(request, 'main/index.html')
(STOP 5) Revise los cambios en el navegador para las URLs:
Descargue y descomprima:
Modifique el archivo templates/main/index.html, con:
...
<!-- START - Block content -->
...
<div class="flex flex-col flex-1 w-full">
{% include './partials/header.html' %}
{% include './content/data.html' %}
</div>
...
<!-- END - Block content -->
(STOP 6) Revise los cambios en el navegador para las URLs:
En la línea de comandos
pip freeze > requirements.txt
deactivate
Versione local y remotamente.
Si te gusta Python, en este artículo se comparan pros y contras de algunos de los frameworks de desarrollo web más potentes.
— Brais Moure (@MoureDev) December 22, 2024
Reflex vs Django vs Flask vs Gradio vs Streamlit vs Dash vs FastAPI
→ https://t.co/PiQFOqWWEx pic.twitter.com/3zXjrKsVa4
ambiente de desarrollo, django, WSGI, function-based view