[PYTHON] WEB-Anwendungsentwicklung mit Django-Entwicklung Teil 1-

Einführung

Ein Projekt erstellen

cd C:\Python\env1
. Scripts/activate

--Erstelle ein Projekt

django-admin startproject mysite

Mysite wird im aktuellen Verzeichnis erstellt.

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py

--Top mysite: Sie können es mit einem beliebigen Namen im Stammverzeichnis erstellen. Kann gewechselt werden. --manage.py ・ ・ ・ Befehlszeilenprogramm zum Ausführen verschiedener Operationen des Django-Projekts. --mysite ・ ・ ・ Paket für dieses Projekt. --mysite / __ init__.py ・ ・ ・ Eine leere Datei, bei der es sich bei diesem Verzeichnis um Python handelt. --mysite / settings.py ・ ・ ・ Projekteinstellungsdatei. --mysite / urls.py ・ ・ ・ URL deklarieren. --mysite / asgi.py ・ ・ ・ Einstiegspunkt des ASGI-kompatiblen WEB-Servers, der das Projekt bereitstellt. --mysite / wsgi.py G ・ ・ WSGI-kompatibler WEB-Server-Einstiegspunkt für die Bedienung von Projekten.

Starten Sie den Entwicklungsserver

--Gehen Sie zum obersten Mysite-Verzeichnis

cd mysite

--Starten Sie den Entwicklungsserver

python manage.py runserver

Greifen Sie nach erfolgreichem Start auf die URL zu (http://127.0.0.1:8000/). Wenn es eine Seite gibt, auf der die Rakete abhebt, ist sie erfolgreich.

Umfragen zur Anwendungserstellung

--Erstellen Sie eine Anwendung

python manage.py startapp polls

Die Anwendung wird jetzt erstellt.

Erstellung anzeigen

--Erstellen Sie eine Ansicht

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

Ordnen Sie die URL zu, um die Ansicht aufzurufen.

--URL verknüpfen

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
]
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]

--Starten Sie den Server

python manage.py runserver

Überprüfen Sie nach dem Starten des Servers den Vorgang. (http: // localhost: 8000 / polls /) Sie können sehen, dass "Hallo Welt. Sie befinden sich am Umfrageindex." Angezeigt wird.

Datenbankeinstellungen

--SQLite ist standardmäßig in mysite / settings.py eingestellt.

python manage.py migrate

Die Tabelle wird erstellt. Erstellen Sie basierend auf den INSTALL_APPS-Einstellungen alle erforderlichen Tabellen gemäß den Datenbankeinstellungen in der Datei mysite / settings.py.

Modell erstellen

from django.db import models

class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')


class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

Die einzelnen Klassenvariablen repräsentieren die Datenbankfelder des Modells.

Aktivieren Sie das Modell

INSTALLED_APPS = [
    'polls.apps.PollsConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

Führen Sie nach dem Einstellen den folgenden Befehl aus, um das Django-Modell wiederzugeben.

python manage.py makemigrations polls

Bei der Ausführung wird die Migration erstellt.

Migrations for 'polls':
  polls/migrations/0001_initial.py
    - Create model Question
    - Create model Choice

Erstellt als polls / migrations / 0001_initial.py. Führen Sie Befehle aus, um das Datenbankschema automatisch zu verwalten.

python manage.py sqlmigrate polls 0001

Der Befehl sqlmigrate gibt SQL mit dem Namen der Migration als Argument zurück. Zeigt die SQL an, die ausgeführt wird, wenn sie reflektiert wird, was tatsächlich nicht reflektiert wird.

python manage.py migrate

Die Migration wird nicht angewendet, ergänzt die Migration und wird für die Datenbank ausgeführt. Synchronisieren.

Versuchen Sie, die von Django bereitgestellte API zu implementieren

import datetime

from django.db import models
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

    def was_published_recently(self):
        return self.pub_date >= timezone.now() - datetime.timedelta(days=1)

class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)
    def __str__(self):
        return self.choice_text

Wir haben dem Modell die Methode str () hinzugefügt, um die Anzeige im interaktiven Modus zu vereinfachen und als Objektdarstellung in Djangos automatisch generiertem Administrator zu verwenden.

--Starten Sie den interaktiven Modus

python manage.py shell

Starten Sie einen Dialog

>>> from polls.models import Choice, Question
>>> Question.objects.all()
>>> Question.objects.filter(id=1)
>>> Question.objects.filter(question_text__startswith='What')
>>> from django.utils import timezone
>>> current_year = timezone.now().year
>>> Question.objects.get(pub_date__year=current_year)
>>> Question.objects.get(pk=1)
>>> q = Question.objects.get(pk=1)
>>> q.was_published_recently()
>>> q = Question.objects.get(pk=1)
>>> q.choice_set.all()
>>> q.choice_set.create(choice_text='Not much', votes=0)
>>> q.choice_set.create(choice_text='The sky', votes=0)
>>> c = q.choice_set.create(choice_text='Just hacking again', votes=0)
>>> c.question
>>> q.choice_set.all()
>>> q.choice_set.count(
>>> Choice.objects.filter(question__pub_date__year=current_year)
>>> c = q.choice_set.filter(choice_text__startswith='Just hacking')
>>> c.delete()

Ich arbeite an Modellbeziehungen.

Erstellen Sie einen Administrator

python manage.py createsuperuser

Bitte geben Sie den Benutzernamen entsprechend an

 Benutzername: Benutzername

Geben sie ihre E-Mailadresse ein

Email address: [email protected]

Exampl.com ist ein Beispiel für einen Domainnamen, den jeder verwenden kann. Nach der Eingabe werden Sie zur Eingabe eines Passworts aufgefordert.

Password: **********
Password (again): *********
Superuser created successfully.

Damit ist die Erstellung des Administrators abgeschlossen.

Starten Sie den Entwicklungsserver

--Starten Sie den Entwicklungsserver Wenn der Server nicht aktiv ist, tun Sie es

python manage.py runserver

Gehen Sie nach dem Start zu * http: // localhost: 8000 / admin / *. Log in _ Django site admin - Google Chrome 2020_09_21 16_56_20 (2).png

Melden Sie sich beim Verwaltungsbildschirm an

Gruppen und Benutzer sind Inhalte, die vom Django-Authentifizierungsfunktionsframework django.contrib.auth bereitgestellt werden.

Fügen Sie die Umfrage-App hinzu, damit sie im Administrator bearbeitet werden kann

--Öffnen Sie polls / admin.py und bearbeiten Sie es.

Das Frageobjekt kann über eine Administrationsoberfläche angezeigt werden. Teilen Sie dem Administrator mit, dass Sie eine Schnittstelle haben.

from django.contrib import admin
from .models import Question

admin.site.register(Question)

Umfragen werden jetzt auf dem Verwaltungsbildschirm angezeigt. Log in _ Django site admin - Google Chrome 2020_09_21 17_14_02.png

-① Umfragen hinzugefügt -② Wenn Sie den Vorgang ausführen, wird er als Verlauf angezeigt.

Versuchen Sie, den Verwaltungsbildschirm zu bedienen

--Press magst du Sushi? Log in _ Django site admin - Google Chrome 2020_09_21 17_14_34.png Kann auf verschiedene Arten aktualisiert werden

WEB-Anwendungsentwicklung mit Django-Entwicklung Teil 2 - >>>

Recommended Posts

WEB-Anwendungsentwicklung mit Django-Entwicklung Teil 1-
WEB-Anwendungsentwicklung mit Django-Development Environment Construction-
Entwicklung einer WEB-Anwendung mit Django [Django-Start]
Entwicklung einer WEB-Anwendung mit Django [Anwendungszusatz]
Entwicklung einer WEB-Anwendung mit Django [Modelldefinition]
Entwicklung der WEB-Anwendung mit Django [Grundeinstellung]
Entwicklung einer WEB-Anwendung mit Django [Request Processing]
Entwicklung einer WEB-Anwendung mit Django [Zusätzliche Vorlage]
Webanwendung mit Flasche (1)
Entwicklung einer WEB-Anwendung mit Django [Erstellung des Admin-Bildschirms]
Entwicklung von Webanwendungen mit Flask
Erstellen einer Webanwendung mit Flask ②
Erstellen einer Webanwendung mit Flask ①
Erstellen einer Webanwendung mit Flask ③
Erstellen einer Webanwendung mit Flask ④
Anwendungsentwicklung mit Azure Machine Learning
Versuchen Sie es mit dem Webanwendungsframework Flask
App-Entwicklung mit SQLite mit Django (PTVS)
Informationen zu Cloud Run + Firebase-Entwicklung [Entwicklung von Webanwendungen]
(Python) Versuchen Sie, eine Webanwendung mit Django zu entwickeln
Tech-Circle Beginnen wir mit der Anwendungsentwicklung durch maschinelles Lernen (Selbststudium)
Erstellen Sie eine Webanwendung mit Django
Web Scraping mit Selenium (Python)
Web Scraping mit AWS Lambda
Webanwendung mit Python + Flask ② ③
[Fernentwicklung] Steuerungsanwendung (Übung 2)
Webanwendung mit Python + Flask ④
Textentwicklung mit Mac-Diensten
Webanwendung mit Python + Flask (unter Verwendung von VScode) # 1 - Aufbau einer virtuellen Umgebung-
Informationen zum HTTP-Cache bei der Entwicklung einer REST-API-basierten Webanwendung [mit GCP]
Die Entwicklung einer Webanwendung ist noch weit entfernt
Gegenmaßnahmen gegen Proxy bei Verwendung der WEB-API
Authentifizierung mit Tweepy-User-Authentifizierung und Anwendungsauthentifizierung (Python)
Erstellen einer Web-App für die Sprachtranskription
[Fernentwicklung] Videoanalyseanwendung (Übung 3)
Erstellen Sie eine Webanwendung mit Django
Anwendungsentwicklung mit Docker + Python + Flask
[Fernentwicklung] Sprachanalyseanwendung (Übung 4)
Tool zur Leistungsmessung von Webanwendungen Funkload ...
Entwicklung und Bereitstellung der REST-API in Python mit Falcon Web Framework
So erstellen Sie eine Anwendung aus der Cloud mithilfe des Django-Webframeworks
Ich möchte eine Webanwendung mit React und Python Flask erstellen
Implementieren Sie eine einfache Anwendung mit Python Full Scratch ohne Verwendung eines Webframeworks.