Ich mache einen Python-Kurs, und die aktuelle Aufgabe besteht darin, Informationen aus einer Datenbank zu entnehmen, sie einem Textfeld hinzuzufügen und dann eine HTML-Datei aus dem Inhalt des Textfelds zu erstellen.Entfernen Sie " n" von einer Zeichenfolge, aber lassen Sie die tatsächlichen Zeilenumbrüche?
Alles funktioniert perfekt, mit Unterbrechungen in den Zeilen genau wie ich sie in die Datenbank eintippte. Das einzige Problem ist, dass "{{" und "}}" um den Text herum hinzugefügt werden, nachdem er aus der Datenbank abgerufen wurde. Also verwandle ich den Text in eine Zeichenkette und zerschneide diese mit [3: -4]. Aber da es jetzt eine Zeichenfolge ist, schreibt es nun wörtlich "\ n" in den Text, wenn es in die Textbox eingegeben wird.
Gibt es trotzdem die Klammern zu entfernen, NICHT den "\ n" Text, aber immer noch die Zeilenumbrüche?
Hier ist, was die Textbox angezeigt wird, bevor ich es in einen String und in Scheiben schneiden drehen:
{{Das ist mein Text! Es sieht sehr sauber aus, weil es Zeilenumbrüche hat. ! süße}}
Und nachdem ich es machen einen String und schneiden Sie die Enden ab:
Das ist mein Text \ n \ nDie Klammern sind verschwunden, aber jetzt können Sie Zeilenumbrüche Code sehen \ n \ nLame. !
Kann ich das Beste aus beiden Welten haben? Hier ist mein Code:
# Grabs info from database on button click
def getContent(self):
c.execute("SELECT HTML FROM Content WHERE conName ='{}'".format(self.contentBox.get()))
fetch = (c.fetchall())
return str(fetch)[3:-4]
# Inserts content into textbox
def setContent(self):
self.clear()
combo = self.getContent()
self.text_body.insert(END,combo)
Verwenden Sie 'str.format' nicht direkt oder Sie sind anfällig für SQL-Injection. –
Die einzige Möglichkeit, auf die Datenbank in meinem Skript zuzugreifen, besteht darin, eine von fünf Optionen aus einer schreibgeschützten Combobox auszuwählen. –
@NathanR Ein Angreifer kann die Combobox auf der Seite des Browsers leicht ändern. Traue niemals dem Kunden. – Selcuk