„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Django einrichten und eine Umfrage-App erstellen: Meine letzten zwei Wochen Arbeit

Django einrichten und eine Umfrage-App erstellen: Meine letzten zwei Wochen Arbeit

Veröffentlicht am 31.10.2024
Durchsuche:184

Setting Up Django and Building a Poll App: My Last Two Weeks of Work

In den letzten zwei Wochen habe ich daran gearbeitet, Django von Grund auf einzurichten und eine einfache Umfrageanwendung zu erstellen. Dieser Artikel führt Sie durch alles, was ich getan habe, angefangen bei der Installation von Python und Django, dem Einrichten einer virtuellen Umgebung, dem Erstellen eines neuen Projekts und dem Erstellen einer funktionsfähigen App namens Umfragen.

1. Python und Django einrichten
Zunächst habe ich sichergestellt, dass Python auf meinem System installiert ist. Wenn Sie es noch nicht installiert haben, können Sie es von python.org herunterladen.

Schritt 1: Python installieren und eine virtuelle Umgebung einrichten
Ich wollte meine Projektabhängigkeiten isoliert halten und habe daher eine virtuelle Umgebung verwendet.

# 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

Schritt 2: Django installieren
Sobald die Umgebung aktiviert war, habe ich Django installiert.

pip install django

Ich habe dann die Installation bestätigt, indem ich Folgendes ausgeführt habe:

django-admin --version

2. Starten eines neuen Django-Projekts: mysite
Jetzt war es an der Zeit, mein Django-Projekt zu erstellen. Ich habe beschlossen, es „Mysite“ zu nennen.

django-admin startproject mysite
cd mysite

Dadurch wurde die Grundstruktur für ein Django-Projekt mit Einstellungen und Konfigurationen erstellt.

3. Erstellen einer neuen Django-App: Umfragen
Nachdem ich das Projekt eingerichtet hatte, erstellte ich eine neue App namens „Umfragen“, die die gesamte Logik und Ansichten für meine Umfrageanwendung enthalten würde.

python manage.py startapp polls

Ich habe die neue App zu INSTALLED_APPS in mysite/settings.py hinzugefügt:

INSTALLED_APPS = [
    # other installed apps
    'polls',
]

4. Definieren der Modelle
Ich begann mit der Definition zweier Modelle: Frage und Wahl. Eine Frage hat einen Fragentext und ein Veröffentlichungsdatum, während eine Auswahl einen Verweis auf eine Frage hat und den Text zusammen mit einer Stimmenzahl speichert.

Hier ist die models.py-Datei in der Umfrage-App:

# 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. Erstellen der Datenbank und Ausführen von Migrationen
Als nächstes habe ich die Datenbank erstellt und Migrationen angewendet:

python manage.py migrate

Ich habe dann Migrationsdateien für die Umfragen-App erstellt:

python manage.py makemigrations polls
python manage.py migrate

6. Schreibansichten für die Umfrage-App
Ich habe mehrere Ansichten geschrieben, um die Anzeige einer Liste von Fragen, die Anzeige von Fragendetails und die Anzeige von Abstimmungsergebnissen zu verwalten. Diese Ansichten sind klassenbasiert und verwenden die integrierten generischen Ansichten von Django.
Ansichten für Umfragen erstellen
Anschließend habe ich die Ansichten erstellt, die steuern, wie Daten dem Benutzer angezeigt werden. Ich habe Djangos generische Ansichten verwendet, um die Dinge einfach zu halten.

Hier ist die Datei „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}.")

  • IndexView: Zeigt eine Liste der neuesten Fragen an.
  • DetailView: Zeigt die Details einer bestimmten Frage und ihre Auswahlmöglichkeiten an.
  • ResultsView: Zeigt die Ergebnisse einer Umfrage nach der Abstimmung an. Die Funktion vote() verwaltet die Stimmabgabe des Benutzers.

7. URLs konfigurieren
Ich habe der Datei urls.py in der Umfrage-App URL-Muster hinzugefügt, um jede Ansicht mit einer bestimmten URL zu verknüpfen.

# 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. Erstellen von Vorlagen für Ansichten
Abschließend habe ich HTML-Vorlagen erstellt, um die Fragen und Ergebnisse anzuzeigen. Die Vorlagen werden im Ordner polls/templates/polls/ abgelegt.

index.html

{% if latest_question_list %}
    
{% else %}

No polls are available.

{% endif %}

detail.html

{% csrf_token %}

{{ question.question_text }}

{% if error_message %}

{{ error_message }}

{% endif %} {% for choice in question.choice_set.all %}
{% endfor %}

result.html

{{ question.question_text }}

    {% for choice in question.choice_set.all %}
  • {{ choice.choice_text }} -- {{ choice.votes }} vote{{ choice.votes|pluralize }}
  • {% endfor %}
Vote again?

Ausführen der Anwendung
Um die Anwendung zu testen, habe ich den Entwicklungsserver ausgeführt:

python manage.py runserver

Beim Navigieren zu http://127.0.0.1:8000/polls/ wurde die Liste der Umfragen angezeigt, und ich konnte Details anzeigen, abstimmen und Ergebnisse sehen.

In den letzten zwei Wochen habe ich gelernt, wie man Django einrichtet, ein Projekt erstellt und eine voll funktionsfähige Umfrage-App erstellt. Es war faszinierend zu sehen, wie in Django alles zusammenhängt, von Modellen über Ansichten bis hin zu Vorlagen. Das war eine großartige Erfahrung und ich freue mich darauf, mehr über die leistungsstarken Funktionen von Django zu erfahren!

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/swahilipotdevs/setting-up-django-and-building-a-poll-app-my-last-two-weeks-of-work-16jl?1Falls vorhanden Verstoß, wenden Sie sich zum Löschen bitte an [email protected]
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3