Как мне вывести динамически сгенерированную веб-страницу на html-страницу вместо cgi-страницы .py?

StackOverflow https://stackoverflow.com/questions/1060289

  •  21-08-2019
  •  | 
  •  

Вопрос

Итак, я только начал изучать 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).

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top