Как мне вывести динамически сгенерированную веб-страницу на html-страницу вместо cgi-страницы .py?
Вопрос
Итак, я только начал изучать python на WAMP, я получил результаты html-формы с использованием cgi и успешно выполнил поиск в базе данных с помощью mysqldb.Я могу вернуть результаты на страницу , которая заканчивается на .py с помощью инструкций print в cgi-коде python, но я хочу создать веб-страницу с расширением .html и вернуть ее пользователю, и / или сохранить их на том же веб-адресе, когда вернутся результаты поиска по базе данных.
спасибо пол
Редактировать:чтобы уточнить, на моем локальном компьютере я вижу /localhost/search.html в адресной строке я отправляю HTML-форму и получаю страницу результатов по адресу /localhost/cgi-bin/searchresults.py.я хочу видеть результаты на /localhost/results.html или /localhost/search.html.если бы это было на общедоступном сервере, я ПРЕДПОЛАГАЮ, что это вернуло бы ... /cgi-bin/searchresults.py, последний раз, когда я видел /cgi-bin/ directories, был в 90-х годах в URL.я взглянул на addhandler, как и предложил Дэвид, я не уверен, что это то, чего я хочу.
Редактировать:спасибо всем вам за ваш вклад, да, без использования фреймворков mod_rewrite кажется правильным решением, но, посмотрев на это, я решил избавить себя от лишних хлопот и использовать django с mod_wsgi, в основном из-за размера его пользовательской базы и количества документов.я мог бы переключиться на более легкий / настраиваемый фреймворк, как только освою основы
Решение
Во-первых, я бы посоветовал вам помнить, что URL-адреса есть URL-адреса и что расширения файлов не имеют значения, и что вам следует просто оставить это.
Если этого недостаточно, то помните, что URL—адреса есть URL-адреса и что расширения файлов не имеют значения, и настройте Apache на использование другого правила для определения, что это CGI-программа, а не статический файл, который следует предоставлять как есть.Вы можете использовать Дополнительный обработчик чтобы добавить обработчик для файлов на жестком диске с расширением .html.
В качестве альтернативы, вы могли бы использовать и mod_rewrite сообщить Apache, что ... /foo.html означает .../foo.py
Наконец, я бы посоветовал, если вы разбираетесь с тем, как выглядят URL-адреса, удалить любой признак чего-либо, похожего на расширение файла (чтобы запрашивался .../foo, а не ... /foo.anything).
Что касается сохранения пользователя на том же адресе для получения результатов, что и для запроса ... это просто вопрос того, чтобы программа выводила базовую страницу без результатов, если она не получает параметры строки запроса, которые указывают на то, что был передан поисковый запрос.