2 Stimmen

Wie kann ich Konfigurationsdaten zwischen Javascript, Python und CSS in meiner Django-Anwendung austauschen?

Ich habe Javascript, Django-Vorlagen, Python-Code und CSS, die alle mit denselben Konfigurationsdaten arbeiten. Wo ist der beste Ort, um sie zu konfigurieren?

Konkret habe ich ein browser-seitiges Eingabe-Widget in Javascript, das eine eingebettete Java-App steuert. Wenn der Benutzer fertig ist, fragt das Javascript das Java-Applet nach einem Bild des Ergebnisses, das in den HTML-Code eingebettet wird. Der Benutzer kann angeben, ob das Bild klein, mittel oder groß sein soll. Das Bild und die Auswahl werden über einen AJAX-Aufruf an meine Django-Anwendung gesendet, die eine Eingabevalidierung vornimmt. Wenn das HTML angezeigt wird, enthält es mein CSS, das über spezielle a[href^= [http://internal.server\]](http://internal.server]) Markup, um diese Bilder anders darzustellen als andere Bilder.

Jemand fragte eine ähnliche Frage waren die Antworten entweder: "eine DSL verwenden" oder "ein Format wie XML oder JSON verwenden". Keines von beiden funktioniert mit CSS.

Die beiden Lösungen, die ich gefunden habe, sind:

  • die Daten in Python eingeben und das HTML über ein Django-Formular/eine Django-Vorlage generieren lassen. Auch haben Django dynamisch generieren die Javascript-Konfiguration und generieren, dass CSS.

Ich mag das nicht, weil ich lieber all mein Javascript und CSS statisch bereitstellen würde.

  • Führen Sie einen Build-Schritt ein, bei dem Konfigurationsdaten auf eine Vorlage angewendet werden, um die entsprechenden Javascript-, HTML-, CSS- und Python-Dateien zu erstellen.

Das macht die Sache komplizierter, denn ich werde spezielle "*.in"-Dateien oder ähnliche Dateien haben, die die eigentlichen Dateien bilden, und jeder wird darauf achten müssen, dass er weiß, welche Dateien zu bearbeiten sind.

Und was machen Sie?

4voto

JSON verwenden. Generieren Sie das CSS dynamisch und verwenden Sie Caching, um die Last zu reduzieren.

0voto

martineau Punkte 110783

Ich denke, ein wirklich guter Ansatz wäre es, eine DSL indirekt über JSON-Datenstrukturen auszudrücken, die mit einer Art von Kodierungskonvention angelegt sind, gekoppelt mit einem separaten Build-Schritt, der die benötigten Konfigurationsdateien erstellt. Wenn das Tool (s) für diese Build-Schritt wurden in Python geschrieben, Erstellung, Wartung und Verbesserung es oder sie sollte relativ einfach sein.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X