KorP
@KorP
Кратко о себе

Python: не работает print в вебе

Я человек начинающие, но вообще задача крайне проста: вывести результаты запроса. Казалось бы — проблем никаких. На всякий случай открыл гугл, так же всё просто:
import MySQLdb

def index():
    try:
        con = MySQLdb.connect(host="localhost", user="###", passwd="###", db="counter")
        cur = con.cursor()
        cur.execute("SET NAMES `utf8`")
        cur.execute("SELECT count(*) as `count`, DATE(`date`) as `date` FROM `count` WHERE `type` = 'server' GROUP BY DATE(`date`)")
        result = cur.fetchall()
        for row in result:
            print(row)
            
    except MySQLdb.Error:
        print(db.error())

… и ничего не выводится… Почему не работает print? Даже
print "Hello world"

не работает. Может я где чего не дособирал?
  • Вопрос задан
  • 5075 просмотров
Пригласить эксперта
Ответы на вопрос 6
SeTeM
@SeTeM
Может быть банально забыли запустить функцию index()?
Ответ написан
@alz
Попробуйте sys.stdout.flush()
Ответ написан
@alz
Вотоноче… А что такое «из браузера» не уточните? Подозреваю, что print вам тут не помощник
Ответ написан
Комментировать
KorP
@KorP Автор вопроса
Кратко о себе
В логе есть вот такая штука
[Mon Nov 12 12:31:50 2012] [error] [client 93.91.12.20] mod_python.publisher: nothing to publish.
что бы это могло значить? я с python`ом под веб первый раз дело имею, так что простите за глупые вопросы
Ответ написан
По идее print будет выводить результат в stdout Вашего сервера. Но для веба лучше использовать logging (это если реальное приложение):
import logging
logging.info('Your message there')


Уверен что print работает отлично (хотя бы пустую строку выводит), если stdout стандартный без перенаправлений.
Поэтому раскажите какой сервер/фреймворк вы используете. Как запускаете свой сервер. Может глупый вопрос, но результат не выводится в консоль или же на веб страничке?
Ответ написан
viatoriche
@viatoriche
Более чем уверен, что возвращать данные надо методом yield
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы