[PYTHON] Django Kontaktformular

Annahme

Nur Google Mail

Django installiert

Projektname: Beispiel App-Name: Kontakt

Hauptthema

Ich werde es sofort umsetzen.

Erstellen Sie nach der Installation von Django ein Projekt.

$ django-admin startproject project

Nachdem Sie mit dem Befehl cd zum Verzeichnis project </ code> navigiert haben, erstellen Sie ein Verzeichnis für Ihre App.

$ python3 manage.py startapp contact

Wir werden settings.py </ code> ändern.

sample/project/settings.py


INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'contact', #Nachtrag
]

LANGUAGE_CODE = 'ja' #Veränderung
TIME_ZONE = 'Asia/Tokyo' #Veränderung

Bearbeiten Sie die App so, dass sie mit urls.py </ code> im selben Verzeichnis wie settings.py </ code> verknüpft ist.

sample/project/urls.py


from django.contrib import admin
from django.urls import path, include #Nachtrag

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('contact.urls')), #Nachtrag
]

Bearbeiten Sie als Nächstes das Verzeichnis contact </ code>. Erstellen Sie eine neue urls.py </ code> und schreiben Sie das URL-Muster.

sample/contact/urls.py


from django.urls import path
from . import views

app_name = 'contact'
urlpatterns = [
        path('', views.index, name='index'),
        path('contact_form/', views.contact_form, name='contact_form'),
        path('contact_form/contact/complete/', views.complete, name='complete'),
]

Bearbeiten Sie views.py </ code> im Verzeichnis contac, um sie der Vorlage zuzuordnen.

sample/contact/views.py


from django.shortcuts import render


def index(request):
    return render(request, 'contact/index.html')

#Anfrageformular Bildschirm
def contact_form(request):
    return render(request, 'contact/contact_form.html')

#Bildschirm zum Abschluss der Übertragung
def complete(request):
    return render(request, 'contact/complete.html')

Als nächstes wird die Vorlage erstellt. Erstellen Sie im Kontaktverzeichnis ein neues Verzeichnis (Ordner) mit dem Namen templates </ code>. Erstellen Sie ein ** Kontaktverzeichnis ** im Vorlagenverzeichnis Erstellen Sie index.html </ code> im Kontaktverzeichnis.

sample/contact/templates/contact/index.html


<!doctype html>
<html>
  <head>
    <title>Webseite</title>
  </head>
  <body>

<center>
<a href="{% url 'contact:contact_form' %}">
<h2>Anfrageformular</h2>
</a>
</center>
</body>
</html>

Als nächstes kommt das Anfrageformular.

sample/contact/templates/contact/contact_form.html


<center>
<h1>Eingabeformular</h1><hr><br>
</center>

Dies ist der Bildschirm zum Abschluss der Übertragung.

sample/contact/templates/contact/complete.html


<center>
<h1>vollständig senden</h1>
<a href="{% url 'contact:index' %}">
<p>Nach oben</p>
</a>
</center>

Formularerstellung

Zeigen Sie die Vorlage mit der Form-Klasse von Django an. Erstellen Sie eine neue forms.py </ code> im Kontaktverzeichnis.

sample/contact/forms.py


from django import forms

class ContactForm(forms.Form):
    subject = forms.CharField(label='Gegenstand', max_length=100)
    sender = forms.EmailField(label='Email', help_text='* Bitte überprüfen und korrekt eingeben.')
    message = forms.CharField(label='Botschaft', widget=forms.Textarea)
    myself = forms.BooleanField(label='Erhalten Sie den gleichen Inhalt', required=False)

■ Betreff: Betreff ■ Absender: E-Mail-Eingabe ■ help_text: Eine Notiz, die später in der Vorlage angezeigt wird. ■ message: Durch Setzen von widget = forms.Textarea </ code>, das geschrieben werden soll Sie erhalten ein Textfeld, in das Sie mehrere Zeilen schreiben können. ■ ich selbst: Kontrollkästchen.

Verarbeiten Sie die erstellte ContactForm mit contact_form </ code> in views.py </ code> und Machen Sie es in der Vorlage sichtbar.

sample/contact/views.py


from django.shortcuts import render, redirect #Nachtrag
from .forms import ContactForm #Nachtrag

........
........
def contact_form(request):
    if request.method == 'POST':
        form = ContactForm(request.POST)
        if form.is_valid():
            return redirect('contact:complete')
    else:
        form = ContactForm()
    return render(request, 'contact/contact_form.html', {'form': form})
.........
.........

Wenn der Inhalt des Formulars POST </ code> mit form.is_valid () </ code> überprüft und korrigiert wurde Es ist eine Beschreibung, die an complete.html </ code> übergeben wird.

Als nächstes werde ich es zur Anzeige beschreiben. Bearbeiten Sie contact_form.html </ code>.

sample/templates/contact/contact_form.html


<center>
<h1>Eingabeformular</h1><hr><br>

<!--Nachtrag-->
<form action="{% url 'contact:contact_form' %}" method="post">
    {% csrf_token %}
<table>
    {{ form.as_table }}
</table><br>
    <input type="submit" value="Senden">
</form>
</center>

{% csrf_token%} </ code> ist eine CSRF-Gegenmaßnahme (Cross-Site Request Forgery). Ohne dies tritt ein Fehler auf.

Google Mail wird später beschrieben.

Recommended Posts