Beginnen wir von der Staubwolke.
Was Sie fragen, ist hauptsächlich darüber, wie die Webseiten funktionieren. Sie müssen wissen, wie Parameter mit HTML übergeben werden. Es gibt viele Möglichkeiten, dies zu tun. Aber mit Django gibt es ein Muster.
Sie benötigen eine URL und eine Ansicht, um alle Anfragen zu erfassen. Dann müssen Sie eine Vorlage und ein Formular darin erstellen. Mit diesem Formular könnten Sie einige Anfragen erstellen, um Daten an Ihre Ansicht zu senden.
So erstellen Sie in Ihrem Projekt fügen Sie eine URL bearbeiten urls.py müssen:
Urls.py
from django.conf.urls import url
from my_app.views import my_view
urlpatterns = [
...
url(r'^my_url$', my_view, name='my_view')
...
]
Für mehr über Urls schauen Sie bitte auf URL dispatcher Seite an Dokumentation.
Dann erstellen Sie Ihre Ansicht in Ihrer App, die my_app in meinem Beispiel ist. Bearbeiten my_app/views.py
my_app/views.py
from django.http import HttpResponse
def my_view(request):
return HttpResponse('IT WORKS!')
diese Weise können Sie eine Arbeitsansicht erhalten, die mit Pfad /my_url
zugegriffen werden kann. Wenn Sie ./manage.py runserver
ausführen, können Sie auf Ihre Ansicht von http://localhost:8000/my_url
zugreifen.
Um ein Formular zu erstellen, müssen Sie eine Vorlage erstellen. Standardmäßig durchsucht django App-Verzeichnisse nach Vorlagen. Erstellen Sie in Ihrer App ein Vorlagenverzeichnis, in unserem Fall my_app/templates
, und erstellen Sie darin eine HTML-Datei. Zum Beispiel my_app/templates/my_form.html
. Aber ich rate, ein weiteres Verzeichnis im Templates-Verzeichnis zu erstellen. my_app/templates/my_app/my_form.html
. Dies verhindert Vorlagenkonflikte. Sie können die Templates Seite unter Dokumentation für mehr überprüfen.
my_app/templates/my_app/my_form.html
<html>
<body>
<form action="/my_url" method="POST">
{% csrf_token %}
<input type="text" name="number">
<input type="text" name="message">
<input type="submit" value="Run My Code">
</form>
</body>
</html>
Dies ist eine der Möglichkeiten, Ihre Form zu schaffen. Aber ich nicht empfehle es. Ich werde es schöner machen. Aber läßt erste "Make it work", bearbeiten Sie Ihre views.py:
csrf_token ist ein django builtin Template-Tag, setzen CSRF in das Formular Token. Standardmäßig erfordert Django CSRF-Tokens bei jedem Post Anfrage.
my_app/views.py
from django.http import HttpResponse
from django.shortcuts import render
def my_view(request):
if request.method == 'GET':
return render('my_app/my_form.html')
elif request.method == 'POST':
# get post parameters or None as default value
number = request.POST.get('number', None)
message = request.POST.get('message', None)
# check if parameters are None or not
if number is None or message is None:
return HttpResponse('Number and Message should be passed')
# your code goes here
...
return HttpResponse('Your code result')
Bis zu diesem Punkt ist der Zweck dieser Antwort war "Making it work". Lasst es schön und sauber konvertieren. Zuerst würden wir Formular erstellen. Formulare sind wie Modelle, mit denen Sie Formulare als Objekte erstellen können. Es behandelt auch Formularvalidierungen. Formulare werden im Allgemeinen im Formularverzeichnis gespeichert. Erstellen my_app/forms.py
und bearbeiten:
my_app/forms.py
from django import forms
class MyForm(forms.Form):
number = forms.CharField(max_length=15, required=True)
message = forms.CharField(max_length=160, required=True)
Setzen Sie Ihre Form in Ihrer Vorlage:
my_app/templates/my_app/my_form.html
<html>
<body>
<form action="{% url 'my_view' %}" method="POST">
{% csrf_token %}
{{ form }}
</form>
</body>
</html>
Neben dem Formular wird auch die Aktion des HTML-Formular-Tags geändert. url template tag wird verwendet, url form url name in urls.py angegeben zu erhalten. Anstelle des URL-Tags könnte {{ request.path }}
verwendet werden.
eine Formularinstanz erstellen und es auf die Vorlage Rendering passieren:
my_app/Ansichten.py
Sie können Klassenbasierte Vies verwenden, um Ihre Ansicht zu schreiben, aber es ist nicht notwendig. Ich hoffe, es hilft.
Die Antwort auf diese Frage wird sehr lang sein, aber ich verstehe, dass Sie wollen Hinweise darauf, wo ich anfangen soll. Wenn Sie eine Webanwendung mit Django erstellen möchten, folgen Sie deren Tutorial hier: https://docs.djangoproject.com/en/1.9/intro/tutorial01/ Allerdings empfehle ich etwas leichter wie Flask: http: // Kolben. pocoo.org/docs/0.11/quickstart/#quickstart – slider
Ich habe bereits eine Django App: DI möchte nur wissen, wie man eine Option in meiner App macht, dass beim Klicken der Code ausgeführt wird –
Da Ihr Code ein Python-Code ist Sie können Ihren Code direkt in Ihre Ansicht schreiben. Andere Fälle sind nicht schön. – scriptmonster