[PYTHON] Best Practices für Django views.py und urls.py (?)

Bevor Sie eine einfache Anwendung mit Django machen

Wie kann ich auf sehr einfache Weise die Einstellungen von views.py und urls.py kennenlernen? Ich dachte, wenn ich nur die Grundlagen unterdrücken würde, bevor ich viele Fehler wiederhole, wäre der Rest glatt.

Die Einführung von Django ist ein früherer Artikel http://qiita.com/Gen6/items/1848f8b4d938807d082e

Es wird davon ausgegangen, dass die Einrichtung der Vorlage zu diesem Zeitpunkt abgeschlossen ist. http://qiita.com/Gen6/items/a5562c36fc5c67c89916

Ich denke, dass die Geschichte leichter zu verstehen sein wird, wenn Sie dasselbe tun, indem Sie sich auf frühere Artikel beziehen.

Lassen Sie uns die Zeit anzeigen

templates/index.html


{% extends "base.html" %}
{% block body %}

    <p>{{hour}}Es ist Zeit</p>

{% endblock %}

myapp/urls.py


from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.index, name='index'),
    url(r'^template/$', views.index, name='index'),
]

myapp/views.py


from datetime import datetime
from django.http.response import HttpResponse
from django.shortcuts import render


def index(request):
    Datetime = {
        'hour': datetime.now().hour,
    }
    return render(request, 'index.html', Datetime)

Wenn Sie dies unter http://127.0.0.1:8000/myapp/ überprüfen, sollte die Uhrzeit angezeigt werden. Wenn die Zeitzone nicht in Ordnung ist, wechseln Sie in den Einstellungen.py von'UTC'to'Asia / Tokyo'.

Versuchen Sie, ein Formular zu erstellen, das den Inhalt nach Eingabe des Namens zurückgibt

templates/index.html



{% extends "base.html" %}
{% block body %}

    <form action="" method="get">
      <label>Name:<input type="text" size="20" name="your_name"></label>
      <input type="submit" value="Senden">
    </form>
    {% if your_name %}
      <p>{{ your_name }}Hallo,.</p>
    {% endif %}

{% endblock %}

myapp/urls.py


from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.get_query, name='get_query'),
    url(r'^template/$', views.index, name='index'),
]

myapp/views.py


from django.http.response import HttpResponse
from django.shortcuts import render


def get_query(request):
    Message = {
        'your_name': request.GET.get('your_name'),
    }
    return render(request, 'index.html', Message)

Wenn Sie dies oben unter http://127.0.0.1:8000/myapp/ überprüfen, wird ein Formular angezeigt. Gibt die im Formular eingegebene Zeichenfolge zurück.

Wie man die beiden Verhaltensweisen mischt

Nun, das Hauptthema ist von hier. Wie kann ich das Formular bei der Anzeige der Uhrzeit verwenden?

Ein Beispiel, das nicht funktioniert

templates/index.html


{% extends "base.html" %}
{% block body %}

    <p>{{hour}}Es ist Zeit</p>
    <form action="" method="get">
      <label>Name:<input type="text" size="20" name="your_name"></label>
      <input type="submit" value="Senden">
    </form>
    {% if your_name %}
      <p>{{ your_name }}Hallo,.</p>
    {% endif %}

{% endblock %}

myapp/urls.py


from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.index, name='index'),
    url(r'^$', views.get_query, name='get_query'),
    url(r'^template/$', views.index, name='index'),
]

myapp/views.py


from datetime import datetime
from django.http.response import HttpResponse
from django.shortcuts import render


def index(request):
    Datetime = {
        'hour': datetime.now().hour,
    }
    return render(request, 'index.html', Datetime)

def get_query(request):
    Message = {
        'your_name': request.GET.get('your_name'),
    }
    return render(request, 'index.html', Message)

Dies wird nicht funktionieren. Wo ist das Problem?

Arbeitsbeispiel

myapp/urls.py


from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.index, name='index'),
    url(r'^template/$', views.index, name='index'),
]

myapp/views.py


from datetime import datetime
from django.http.response import HttpResponse
from django.shortcuts import render


def index(request):
    Message = {
        'your_name': request.GET.get('your_name'),
        'hour': datetime.now().hour
    }
    return render(request, 'index.html', Message)

Ich denke, wenn Sie es verstehen, können Sie Ihr Verständnis vertiefen, indem Sie verschiedene Einstellungen ausprobieren.

Die eigentliche Anwendungserstellung befindet sich in einem separaten Artikel. http://qiita.com/Gen6/items/735245423b65698428be

Recommended Posts

Best Practices für Django views.py und urls.py (?)
__version__ Fallen und Best Practices
Best Practices für die dynamische Verarbeitung von LINE Flex-Nachrichten in Django
Best Practices für den Umgang mit Daten mit Pandas
Internationalisierungsunterstützung mit Django 1.9
Persönliche Best Practices für die Python-Entwicklungsumgebung mit VS-Code
[Für Anfänger] Django Häufig verwendete Befehle und Referenzsammlung
DBSCAN-Praktiken und -Algorithmen