Я пытаюсь создать простую комбинацию формы / скрипта, которая позволит кому-то заменить содержимое определенного div в html-файле текстом, который они вводят в html-форме на отдельной странице.
Скрипт работает нормально, если все локально: скрипт локальный, я устанавливаю рабочий каталог, где находится мой html-файл, и сам передаю параметр при запуске скрипта. Однако, когда я загружаю все на свой сервер сайта, он выдает ошибку 500.
Мне удалось выполнить простой скрипт на python, который я сохранил на своем сайте, и JustHost, мой хостинг, сообщил мне, что BeuatifulSoup был добавлен на мой сервер.
Вот скрипт, с параметром "textcontent" из HTML-формы, который работает нормально. Мой scirpt коренится в public_html / cgi-bin /, а html, который я пытаюсь читать и писать, находится в корне public_html. Я предполагаю, что либо HTML-файл не найден, либо Beautifulsoup на самом деле не доступен на моем сервере ... в любом случае способ проверить это?
#!/usr/bin/python
#import beautifulsoup
from BeautifulSoup import BeautifulSoup
# Import modules for CGI handling
import cgi, cgitb, traceback
# Create instance of FieldStorage
try:
form = cgi.FieldStorage()
def text_replace(word):
f = open('/public_html/souptest2.html', 'r')
soup = BeautifulSoup(f.read())
f.close()
text = soup.find('div', attrs={'id': 'sampletext'}).string
text.replaceWith(word)
deploy_html = open('/public_html/souptest2.html', 'w')
deploy_html.write(str(soup))
deploy_html.close()
# Get data from fields
if form.getvalue('textcontent'):
text_content = form.getvalue('textcontent')
text_replace(text_content)
else:
text_content = "Not entered"
except:
deploy_html = open('../souptest2.html', 'w')
traceback.print_exc(deploy_html)
deploy_html.close()
Я пытался загрузить его как скрипт и запустить его с URL-адреса, но все равно получаю ошибку 500, без вывода на мою страницу вывода для отладки с использованием traceback ...