Ich habe ein einfaches HTML-Formular auf einer Seite erstellt und möchte alle Daten aus dem Formular sammeln, in JSON konvertieren und dann JSON auf einer neuen Seite anzeigen . Ich brauche oder möchte nicht, dass eine Datenbank diese Daten speichert, ich möchte nur, dass sie auf eine neue Seite im richtigen JSON-Format gespuckt wird, so dass die Person, die sie verwendet, diese Daten für etwas anderes kopieren/einfügen kann.Anzeigen von HTML-Formulardaten als JSON auf einer neuen Seite mit Flask
I Flask bin mit, hier ist die HTML-Formular ich gemacht, dass eine weitere grundlegende Layout-Seite erweitert:
{% extends "layout.html" %}
{% block content %}
<div class="container">
<form action="/display" method="post" id="employForm"
<fieldset>
<label>First Name
<input type="text" name="firstName" placeholder="Joe" required>
</label>
<label>Last Name
<input type="text" name="lastName" id="lastName" placeholder="Schmoe" required>
</label>
<label>
Department
<select name="department" required>
<option value="sales">Sales</option>
<option value="marketing">Marketing</option>
<option value="developer">Developer</option>
<option value="business">Business Relations</option>
<option value="sysAdmin">Systems Administration</option>
<option value="drone">Drone</option>
</select>
</label>
... goes on
</fieldset>
<button class="button-primary" type="submit" value="Submit" form="employForm">SUBMIT!</button>
</form>
</div>
{% endblock %}
Die Form etwas länger als das ist und enthält mehrere unterschiedliche Typen von Formulardaten. Hier ist die Server-Seite der Dinge (die Kolben-App, die ich gemacht habe):
Ich fühle mich wie ich bin in der Nähe. Im Moment, nachdem ich einreichen schlug ich auf die Display-Seite weitergeleitet und es druckt so etwas wie die folgenden (spezifische Datenänderungen auf Basis eines Eingangs Antworten, natürlich):
ImmutableMultiDict([('startDate', u'2016-08-03'), ('employmentStatus', u'intern'), ('firstName', u'Hola'), ('lastName', u'Schmoe'), ('department', u'marketing'), ('location', u'SanFran'), ('inNYC', u'Yes'), ('requests', u'Blah blah try this.')])
ich ziemlich viel getan habe Suchen auf Stack Overflow und anderswo ... das Problem, das ich angetroffen habe, ist, dass sie alle Beispiele bieten, wo eine Person nur ein oder zwei Schlüssel von ihrem Formular sammeln möchte, nicht das ganze Formular.
Außerdem würde ich für meine speziellen Zwecke stark bevorzugen, dass die Daten als JSON zurückgegeben und als solche auf der display.html-Seite angezeigt werden.
als Referenz, hier sind einige der Fragen, die ich zu diesem sah nicht ganz Hilfe:
How to post data structure like json to flask?
Getting form data from html form using flask and python
Flask request and application/json content type
Send Data from a textbox into Flask?
Jede Führung ist sehr geschätzt. Vielen Dank!
Wenn das alles ist, was Sie tun, brauchen Sie nicht Flask. Sie können alles mit HTML und JavaScript machen. – dirn
Können Sie erklären, was Sie meinen? Sprechen Sie über die Verwendung von GET anstelle von POST und die Zuweisung eines Klickereignisses mit JavaScript? Wenn ja, habe ich über diese Option nachgedacht, aber letztendlich entschieden, dass ich mit Python/Flask üben wollte. Auch das könnte sich später in ein komplizierteres Projekt verwandeln, also entschied ich mich Flask zu verwenden, war die bessere Idee. – RHdev
Nein. Wenn Sie lediglich die Formularfelder als JSON auf der Seite anzeigen, müssen Sie keine HTTP-Anforderungen stellen.Sie können JavaScript verwenden, um die Formularübermittlung zu erfassen und die Felder in JSON zu konvertieren (mit Hilfe von [jQuery's 'serializeArray'] (http://api.jquery.com/serializeArray/)). – dirn