Как вывести динамически сгенерированную веб-страницу на страницу .html вместо страницы .py cgi? - PullRequest
1 голос
/ 30 июня 2009

Итак, я только начал изучать python на WAMP, получил результаты html-формы с использованием cgi и успешно выполнил поиск в базе данных с помощью mysqldb. Я могу вернуть результаты на страницу, оканчивающуюся на .py, используя операторы print в коде Python CGI, но я хочу создать веб-страницу с расширением .html, которая будет возвращена пользователю, и / или оставить их на том же веб-адресе. когда результаты поиска в базе данных возвращаются.

спасибо Пол

edit: чтобы уточнить на моем локальном компьютере, я вижу /localhost/search.html в адресной строке, отправляю html-форму и получаю страницу результатов по адресу /localhost/cgi-bin/searchresults.py. Я хочу увидеть результаты в /localhost/results.html или /localhost/search.html. если бы это было на общедоступном сервере, я предполагаю, что он вернет ... / cgi-bin / searchresults.py, последний раз, когда я видел каталоги / cgi-bin /, был в 90-х годах в URL. я посмотрел на addhandler, как предположил Дэвид, я не уверен, что это то, что я хочу.

edit: спасибо всем за ваш вклад, да без использования фреймворков, mod_rewrite кажется правильным, но, посмотрев на это, я решил избавить себя от проблем и использовать django с mod_wsgi, в основном из-за размера его пользовательской базы и количества документов. я мог бы переключиться на более легкие / более настраиваемые рамки, как только я получил основы

1 Ответ

3 голосов
/ 30 июня 2009

Во-первых, я бы посоветовал вам помнить, что URL-адреса являются URL-адресами, и что расширения файлов не имеют значения, и вам следует просто оставить его.

Если этого недостаточно, помните, что URL-адреса являются URL-адресами, а расширения файлов не имеют значения & mdash; и настройте Apache для использования другого правила, чтобы определить, что это CGI-программа, а не статический файл, который нужно обслуживать как есть. Вы можете использовать AddHandler , чтобы добавить обработчик для файлов на жестком диске с расширением .html.

В качестве альтернативы вы можете использовать mod_rewrite , чтобы сообщить Apache, что & hellip; /foo.html означает & hellip; /foo.py

.

Наконец, я бы посоветовал вам, если вы все время обдумываете, как выглядят URL-адреса, вы удаляете все признаки чего-то, похожего на расширение файла (так что запрашивается & hellip; / foo, а не & hellip; / foo). ничего).

Что касается сохранения пользователя на том же адресе для результатов, что и для запроса & hellip; это просто вопрос того, чтобы программа выводила базовую страницу без результатов, если она не получает параметры строки запроса, которые указывают, что поисковый термин был передан.

...