Я работаю над парсером URL для метода get при написании сценариев CGI в python 2.7. Двигаясь вперед, я пытаюсь, чтобы мои HTML-формы были предварительно заполнены ничем (если веб-страница была только что открыта) или тем, что пользователь вводил ранее. Скрипт связывается с самим собой, поэтому все правильно называется, я просто не могу получить мои переменные python, где я их хочу.Предварительно заполняемые формы HTML в python CGI
print "Content-Type: text/html"
print """
<html>
<head>
<title> Output from CGI </title>
</head>
<body>
<h3> Creating HTML forms </h3>
<p> Please randomize input below... </p>
"""
print '<form action="proj1.cgi" method="get">'
print '<input type="checkbox" name="cb1" value="1" />'
if f:
print '<input type="text" name="text1" value="'+ html_encode(var['text1'])+'" />'
else:
print '<input type="text" name="text1" />'
print """
<input type="submit" />
</form>
<h3> This was your output: </h3>
<p>
"""
print 'User Text: %s <br />' %(html_encode(var['text1']))
if 'cb1' not in var.keys():
print 'The checkbox wasn\'t checked :(<br />'
else:
print 'The checkbox was checked!<br />'
print """
</p>
<br /><br />
</body>
</html>
"""
Я знаю, что мое форматирование ужасно, но я могу беспокоиться об этом, когда оно работает. Эти операторы if просто проверяют данные и принимают решения на основе указанных данных. проблема явно возникает при попытке использовать переменные python в моих операторах печати. Я отказался от всего остального кода, чтобы никого не путать, но должно быть известно, что это сидит внизу моего сценария CGI, а не является независимым html-файлом.
Просто голова, вы можете использовать JavaScript вместо Python для чего-то подобного. Если вы настаиваете на использовании Python, проверьте Django или Flask - они значительно упрощают HTML-рендеринг. –
Я действительно переезжаю в колбу вскоре после завершения этого проекта. Мой босс заставляет меня изучать под животом то, как работает Интернет, поэтому мне пришлось разработать собственный парсер URL-адресов для методов получения и публикации. это одна из последних частей этого проекта, прежде чем перейти к более эффективному инструменту. – Turk