Durante las últimas dos semanas, he estado trabajando en configurar Django desde cero y crear una aplicación de encuesta simple. Este artículo lo guiará a través de todo lo que hice, desde la instalación de Python y Django, la configuración de un entorno virtual, la creación de un nuevo proyecto y la creación de una aplicación funcional llamada encuestas.
1. Configurando Python y Django
Para empezar, me aseguré de que Python estuviera instalado en mi sistema. Si aún no lo ha instalado, puede descargarlo desde python.org.
Paso 1: instalar Python y configurar un entorno virtual
Quería mantener aisladas las dependencias de mi proyecto, así que utilicé un entorno virtual.
# Install virtualenv if you don't have it pip install virtualenv # Create a virtual environment virtualenv myenv # Activate the environment # On Windows: myenv\Scripts\activate # On macOS/Linux: source myenv/bin/activate
Paso 2: Instalar Django
Una vez activado el entorno, instalé Django.
pip install django
Luego confirmé la instalación ejecutando:
django-admin --version
2. Iniciando un nuevo proyecto Django: mysite
Ahora era el momento de crear mi proyecto Django. Decidí llamarlo mi sitio.
django-admin startproject mysite cd mysite
Esto creó la estructura básica para un proyecto Django con ajustes y configuraciones.
3. Creando una nueva aplicación Django: encuestas
Después de configurar el proyecto, creé una nueva aplicación llamada encuestas, que contendría toda la lógica y las vistas de mi aplicación de encuesta.
python manage.py startapp polls
Agregué la nueva aplicación a INSTALLED_APPS en mysite/settings.py:
INSTALLED_APPS = [ # other installed apps 'polls', ]
4. Definiendo los modelos
Empecé definiendo dos modelos: Pregunta y Elección. Una Pregunta tiene un texto de pregunta y una fecha de publicación, mientras que una Elección tiene una referencia a una Pregunta y almacena texto junto con un recuento de votos.
Aquí está el archivo models.py en la aplicación de encuestas:
# models.py import datetime from django.db import models from django.contrib import admin from django.utils import timezone class Question(models.Model): question_text = models.CharField(max_length=200) pub_date = models.DateTimeField('date published') def __str__(self): return self.question_text @admin.display( boolean=True, ordering='pub_date', description='Published recently?', ) def was_published_recently(self): now = timezone.now() return now - datetime.timedelta(days=1)5. Creando la base de datos y ejecutando migraciones
A continuación, creé la base de datos y apliqué las migraciones:
python manage.py migrateLuego creé archivos de migración para la aplicación de encuestas:
python manage.py makemigrations polls python manage.py migrate6. Escribir vistas para la aplicación de encuesta
Escribí varias vistas para manejar la visualización de una lista de preguntas, mostrar detalles de las preguntas y mostrar resultados de votación. Estas vistas están basadas en clases y utilizan las vistas genéricas integradas de Django.
Creando vistas para encuestas
Luego creé las vistas que controlan cómo se muestran los datos al usuario. Utilicé las vistas genéricas de Django para simplificar las cosas.Aquí está el archivo views.py:
# views.py from django.http import HttpResponse from django.shortcuts import get_object_or_404, render from django.urls import reverse from django.views import generic from django.utils import timezone from .models import Question, Choice class IndexView(generic.ListView): template_name = 'polls/index.html' context_object_name = 'latest_question_list' def get_queryset(self): """Return the last five published questions.""" return Question.objects.order_by('-pub_date')[:5] class DetailView(generic.DetailView): model = Question template_name = 'polls/detail.html' def get_queryset(self): """Exclude questions that aren't published yet.""" return Question.objects.filter(pub_date__lte=timezone.now()) class ResultsView(generic.DetailView): model = Question template_name = 'polls/results.html' def vote(request, question_id): return HttpResponse(f"You're voting on question {question_id}.")
7. Configurar URL
Agregué patrones de URL al archivo urls.py en la aplicación de encuestas para vincular cada vista a una URL específica.
# urls.py from django.urls import path from . import views app_name = 'polls' urlpatterns = [ path('', views.IndexView.as_view(), name='index'), path('/', views.DetailView.as_view(), name='detail'), path(' /results/', views.ResultsView.as_view(), name='results'), path(' /vote/', views.vote, name='vote'), ]
8. Creando plantillas para vistas
Finalmente, creé plantillas HTML para mostrar las preguntas y los resultados. Las plantillas se colocan en la carpeta polls/templates/polls/.
índice.html
{% if latest_question_list %}
No polls are available.
{% endif %}detalle.html
resultado.html
{{ question.question_text }}
Ejecutando la aplicación
Para probar la aplicación, ejecuté el servidor de desarrollo:
python manage.py runserver
Al navegar a http://127.0.0.1:8000/polls/ se mostró la lista de encuestas y pude ver los detalles, votar y ver los resultados.
Durante las últimas dos semanas, aprendí cómo configurar Django, crear un proyecto y crear una aplicación de encuesta completamente funcional. Fue fascinante ver cómo todo se conecta en Django, desde modelos hasta vistas y plantillas. ¡Esta ha sido una gran experiencia y estoy emocionado de aprender más sobre las potentes funciones de Django!
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3