"%" Zeichen im HTML Code

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Benutzeravatar
tjuXx
User
Beiträge: 67
Registriert: Freitag 21. September 2007, 09:25
Wohnort: Bremerhaven
Kontaktdaten:

Hi,

ich würde gerne ein "%" in meinen HTML Code schreiben, der mit Python generiert wird.

Code: Alles auswählen

def INDEX_HTTP(HEADER_HTTP, MAIN_HTTP, FOOTER_HTTP):
	return '''
%(HEADER_HTTP)s
<table width="100%" border="0" align="center">
  <tr>
    <td>%(MAIN_HTTP)s</td>
  </tr>
</table>
%(FOOTER_HTTP)s''' % vars()
Die Tabelle soll dabei width="100%" haben.

Aufgrund des "%"-Zeichen bekomme ich aber folgenden TypeError:

not enough arguments for format string

Habe versucht es mit einem "\" vor dem "%" zu lösen, so funktioniert es aber nicht.

Kann mir jemand helfen??

Gruß tjuXx
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Was gibt denn dein ``vars()``-Aufruf zurück? Es sollte ein Dict sein, in dem die Keys die du im String nutzt, definiert sind.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
tjuXx
User
Beiträge: 67
Registriert: Freitag 21. September 2007, 09:25
Wohnort: Bremerhaven
Kontaktdaten:

ja, ist ein Dict.

{'FOOTER_HTTP': '\n</body></html>', 'HEADER_HTTP': '\n<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1- ... d">\n<html xmlns="http://www.w3.org/1999/xhtml">\n<head>\n <meta http-equiv="Content-Type" content="text/html; charset=utf-8">\n <title>Test</title>\n <link href="../../style/default.css" rel="stylesheet" type="text/css">\n</head>\n<body>', 'MAIN_HTTP': '<h1>Hallo Test</h1>'}
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Um ein %-Zeichen im String benutzen zu können, muss ein % vorangestellt werden. Beispiel:

Code: Alles auswählen

In [7]: '"<table width="%d%%">' % 100
Out[7]: '"<table width="100%">'
Benutzeravatar
tjuXx
User
Beiträge: 67
Registriert: Freitag 21. September 2007, 09:25
Wohnort: Bremerhaven
Kontaktdaten:

Vielen Dank....so funktioniert es.
Antworten