Wie HTML von CGI/Python trennen?
Verfasst: Montag 20. Juni 2011, 22:03
Hallo Leute.
Ein minimales Beispiel:
Diese Form liest zwei Zahlen ein, die die Grenzen eines Intervalls darstellen.
Wenn die Form übermittelt wird erscheint eine neu erstellte Seite, die die beiden Grenzen angibt. Diese wird mit dem CGI Skript erzeugt.
Ich will den HTML Teil in einem separaten .html File haben (bessere Lesbarkeit mit Syntax Highlighting). Wie kann ich dann aber die String-Formatting "Platzhalter" ausfüllen mit den beiden Werten wenn ich die Seite anzeigen möchte?
Ein minimales Beispiel:
Diese Form liest zwei Zahlen ein, die die Grenzen eines Intervalls darstellen.
Code: Alles auswählen
<html>
<head>
<title>HTML Formatting Example</title>
</head>
<body>
<form name="getValuesForm" action="./getRandomNumber.cgi">
<h2>Start External Function.</h2>
Return a random number in the given intervall.<br />
<p>
Lower Boundary of the Intervall.<br />
<input type="text" name="lowerBoundary" value="0"><br />
Upper Boundary of the Intervall.<br />
<input type="text" name="upperBoundary" value="10"><br />
<input type="submit" name="getRandomNumber" value="Get Random Number">
</p>
</form>
</body>
</html>
Code: Alles auswählen
#!/usr/bin/python
print "Content-type: text/html\n\n"
import cgi
import cgitb
cgitb.enable()
import random
form = cgi.FieldStorage()
def getRandomNumber(lower, upper):
return random.randint(lower, upper)
def getPage(lower, upper):
newPage = ''
newPage += '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\n'
newPage += '<html>\n'
newPage += '<head>\n'
newPage += '<title>Random Number String Formatting HTML Example</title>\n'
newPage += '</head>\n'
newPage += '<body>\n'
newPage += '<h2>Random Number Interval Entered:</h2>\n'
newPage += 'Lower Intervall Boundary: %s<br />\n'
newPage += 'Upper Intervall Boundary: %s<br />\n'
newPage += '</body>\n'
newPage += '</html>\n'
return newPage % (lower, upper)
if __name__ == '__main__':
lower = form['lowerBoundary'].value
upper = form['upperBoundary'].value
randomNumber = getRandomNumber(int(lower), int(upper))
print getPage(lower, upper)