2013-05-19 2 views
0

Я смущен, почему bottlepy сервер не работает:Почему не загружается сервер бутылок?

if __name__ == '__main__': 
    start = datetime.now() 
    db = Database(force_refresh_cache=False, 
        timestamp_filename='timestamp.pickle', 
        schema_filename='schema.pickle') 
    print datetime.now(), 'Took:', (datetime.now() - start).total_seconds() 

    run(host='localhost', port=80, reloader=True, debug=True) 

Когда я закомментируйте строительство дб; сервер работает.

В обоих случаях я получаю временную строку «Took: [seconds]», которая подразумевает, что ранее не было ошибок.

ответ

1

Проблема заключается в коде уровня модуля и, возможно, в том, что вы используете перегружатель. Проверьте this вне.

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

попробовать это:

if __name__ == '__main__': 
    start = datetime.now() 
    db = Database(force_refresh_cache=False, 
        timestamp_filename='timestamp.pickle', 
        schema_filename='schema.pickle') 
    print datetime.now(), 'Took:', (datetime.now() - start).total_seconds() 

    run(host='localhost', port=80, debug=True) 
+0

Спасибо за что, в настоящее время соблазн написать функцию для обеспечения базы данных всегда строится для каждого из концов ... к сожалению, я должен был бы украсить каждую конечную точку с этим. Есть ли альтернатива, если я хочу: 'reloader = True'? –

+0

Я нахожу, что функциональность перегружателя во всяком случае невелика. Вы можете добавить постоянный файл, который указывает, загружена ли БД, чтобы гарантировать загрузку только одного экземпляра, но я не могу думать ни о чем другом с моей головы. – Tadgh

Смежные вопросы