доступ к базе данных из python cgi

Я настроил файл httpd для запуска сценариев Python, как указано на веб-сайте. После настройки я был поражен, увидев, что файл .py запускается при помещении в папку htdocs, но файлы .cgi не выполняются. Ошибка говорит о внутренней ошибке. Думал продолжить работу с файлами .py, но когда я пытаюсь получить доступ к базе данных mysql, я не могу этого сделать. Мой файл .py:

import cgi
import MySQLdb

print "Content-type: text/html"
print
print "<html><head>"
print ""
print "</head><body>"
form=cgi.FieldStorage()
name=form["t1"].value
print "Hello. %s" %name
print "hai"
print '<input type="submit"/>'
Con = MySQLdb.Connect(host="127.0.0.1", port=3306, user="root", passwd="pwd", db="db1")
cursor = Con.cursor()
sql="SELECT * FROM rec"
cursor.execute(sql)
data = cursor.fetchone()
print "%s" %data
print "</body></html>"

Я не получаю никаких ошибок, но «данные» не получают распечатку, которую я получил:

hello name hai submit button

новичок в питоне. Так вы, ребята, пожалуйста, помогите мне? python версии 2.7 db-mysql server-apache 2.2 win32 бит


person user2216762    schedule 13.06.2013    source источник
comment
вы, вероятно, получили ошибку, но вы не увидите ее в выводе, поскольку она попадает в журнал apache, поэтому проверьте свои журналы или добавьте cgitb: import cgitb; cgitb.enable()   -  person mata    schedule 13.06.2013
comment
Возможно, вы не захотите подключаться как root, попробуйте создать учетную запись пользователя, у которой нет разрешения на удаление всей базы данных. Никогда не рекомендуется использовать режим администратора в качестве режима пользователя.   -  person Niklas R.    schedule 13.06.2013
comment
когда я пытаюсь подключиться к базе данных с помощью python, я правильно понимаю... но в python cgi это не работает....   -  person user2216762    schedule 13.06.2013


Ответы (1)


Поместите следующую строку в первую строку и посмотрите, какая ошибка произошла (трассировка).

import cgitb; cgitb.enable()
person falsetru    schedule 13.06.2013
comment
да... показывает ошибку... внутреннюю ошибку сервера... не могли бы вы сказать, появляется ли эта ошибка, есть ли ошибка в коде? - person user2216762; 13.06.2013
comment
На странице не отображается какая-либо трассировка? - person falsetru; 13.06.2013
comment
Если у вас нет трассировки, попробуйте скрипт cgi в командной строке: echo t1=blah | python cgi_script.py - person falsetru; 13.06.2013
comment
даа.. я добавил #!/python27/python/ забыл указать в запросе... извините - person user2216762; 13.06.2013
comment
эй.. я не получил вывод... помогите мне решить проблему, потому что я застрял в середине проекта - person user2216762; 14.06.2013
comment
Вы пробовали echo t1=blah | python cgi_script.py в командной строке? Запустите команду и покажите мне результат. - person falsetru; 14.06.2013
comment
я получил вывод... мне пришлось преобразовать полученные данные из базы данных в строку... и спасибо за импорт stmt... это работает :) - person user2216762; 14.06.2013