2016-05-11 4 views
0

Ich bin ziemlich neu in Python, und zum Üben habe ich beschlossen, ein kleines Programm zu erstellen, um meinem Vater seine Website zu aktualisieren (er besitzt einen kleinen Film Theater) um zu zeigen, was Filme spielen.Verwenden von .format zum Einfügen von Text in einigen HTML-Code, Fehler (Python)

Ich habe im Grunde eine Reihe von Textfeldern erstellt, um den Titel des Films, Besetzung, Zeiten spielen usw. einzugeben. Wenn Sie fertig sind, drücken Sie "Submit" und es spuckt eine neue index.html Seite auf den Server hochladen .

Das Problem ist, verwende ich {0}, {1}, {2} usw., um die neuen Informationen aus den Textfeldern in den HTML-Code (eine Zeichenfolge in meinem Programm) einzufügen, und Python behält verwirrt werden, weil der HTML-Code Javascript mit geschweiften Klammern enthält.

Hier ist der Code:

def submit(self): 
     self.createHTML(('''<lots of html>{some javascript stuff}{0}{1}{2}{3}{4}{5}{6}{7} 
'''.format((self.text_title.get(1.0,'end')), 
      (self.text_date2d.get(1.0,'end')), 
      (self.text_date3d.get(1.0,'end')), 
      (self.text_cast.get(1.0,'end')), 
      (self.text_summary.get(1.0,'end')), 
      (self.text_runtime.get(1.0,'end')), 
      (self.text_trailer.get(1.0,'end')), 
      (self.text_image.get(1.0,'end'))))) 

ich die HTML mit <lots of html>{some javascript stuff} ersetzt es hier einfacher zu machen auf Stapel (und an die Wurzel des Problems zu helfen).

Wenn ich den HTML-Code der tatsächlichen Website in meinem Programm habe, heißt es "ValueError: Unerwartetes '{' in Feldname" und verweist auf das Ende der Funktion (self.text_image.get (1.0, 'end'))))). Wenn ich die vereinfachte Version oben verwende, bekomme ich "KeyError: 'einige Javascript-Sachen'", und es zeigt auch auf das Ende der Funktion.

Ich denke, es könnte funktionieren, wenn ich Python sagen kann, alle geschweiften Klammern von JavaScript zu ignorieren, aber die Verwendung von Escape-Zeichen funktioniert nicht.

Hoffentlich machte das Sinn. Kann jemand helfen?

Antwort

0

Es sieht so aus, als müssten Sie Ihre geschweiften Klammern im JavaScript-Teil entfernen. Sie können die doppelten geschweiften Klammern {{}} statt einzelner geschweifter Klammern in Ihrem JavaScript verwenden.

+0

Funktioniert perfekt, danke! –

Verwandte Themen