2016-12-28 4 views
-1

Ich erstelle ein Python-gestütztes Web-Framework mit dem Ziel, Javascript so minimal wie möglich zu nutzen. Sie müssen etwas Leichtes wie uilang erstellen, um Ereignisse an meinen Python-Code zu übergeben. Ich nehme an, dass sollte jQuery-Lösung irgendwie pingen Art von Observer-Objekt (?).Python-Backend mit JS-Frontend

Ich habe einige Bemühungen entdeckt, pure-Python-Schnittstelle wie Remi zu erstellen, aber immer noch keine Ahnung, wie ich es in meinem Code neu implementieren sollte.

Sagen wir, ich eine Klasse wie das machen:

class WebView(): 
    def __init__(self, template, **callbacks): 
     """ 
     Callbacks are dict, {'object': callback} 
     """ 
     self.template = template 
     self.customJS = None 
     for obj, call in callbacks: 
      self.setCallback(obj, call) 

    def __call__(): 
     """ 
     Here I return template 
     Assume {{customJS}} record in template, to be simple 
     """ 
     return bottle.template(self.template, customJS = self.customJS) 

    def setCallback(self, obj, call): 
     """ 
     Build custom js to insert 
     """ 
     self.customJS += ('<script ....%s ... %s' % (obj, call)) 

So, wie könnte ich JS machen von ein Ereignis passieren, sagen wir, Taste zurück zu meinem Rückruf?

Ich verstehe, dass die Frage am Rande der zu breit sein könnte, aber ich versuche nur so beschreibend wie möglich zu sein, weil ich wirklich JS überhaupt nicht kenne.

+1

Sie müssen mehr darüber recherchieren, wie Client- und Servertechnologien zusammenarbeiten, bevor Sie sich auf ein solches episches Abenteuer einlassen. Kann beginnen mit: https://pythonprogramming.net/jquery-flask-tutorial/ –

Antwort

0

Sie könnten es wahrscheinlich auch mit websockets tun, aber ich denke nicht, dass es der beste Weg ist. Sie können websocket-python Bibliothek auf der Python-Seite verwenden, und auf der Website senden Sie einfach eine Websocket-Nachricht bei jedem Klick auf die Schaltfläche Callback.

1

Die Sache ist, dass Sie Javascript für ein Python-Web-Framework nicht brauchen. Du würdest in Ordnung sein, Seiten mit Flasch oder Django ohne die einzige Zeile von JS zu bedienen.

Diese Seiten wären ziemlich statisch mit ein paar Formen aber würde perfekt funktionieren.

Jetzt, wenn Sie mehr dynamische Inhalte und Interaktionen haben möchten, benötigen Sie wahrscheinlich JS, und verwenden Sie XMLHttpRequests, um Ihr Python-Backend bei Ereignissen asynchron aufzurufen. Aber um das richtig zu machen, sollten Sie JS lernen.