Tornado - Введення в асинхронність, fkn antitotal

Primary tabs

Отже,Tornado. Документація до фреймворку заснована на вбудованій системі документації python. На момент написання статті актуальною версією Tornado є 3.2, і ми використовуємо python3. Через мізерну документацію доводиться часто ритися у вихідниках, щоб зрозуміти як працювати з цим дивом, тому я чекатиму питань від тих, хто вибере даний фреймворк і сервер для своїх проектів. У цій статті я спробую розповісти про основні проблеми в Tornado.

Для того, щоб було зрозуміло тим, хто не знайомий з Tornado, я наведу типовий код з документації, в якому буде створено найпростіший http-сервер, що обробляє http запити.

Це майже стандартний скелет для реалізації власного http сервера, докладніше дивіться документацію, для найпростіших речей вона досить зрозуміла: http://www.tornadoweb.org/en/stable/docu.

---Грабля 1 : Перше, що потрібно зрозуміти, що тут майже все треба робити ручками. Для того щоб використовувати вбудовану систему аутентифікації потрібно перевизначити функціюget_current_user,а для захисту від XSRF достатньо дотримуватися інструкцій, але у мене не завжди працювала їхня система з JSON тому я перевизначив функцію перевірки так:

Після, для тих обробників для яких потрібна автентифікація та перевірка токена xsrf я застосовував успадкування від BaseHandler.

  • До нас надходить запит
  • Щось робимо, блокуючі виклики та тривалі обчислення реалізовуємо на іншому сервері
  • Робимо засобами фреймворку асинхронний запит

Приклад (прямий з документації):

Отже, тепер зрозуміла архітектура Tornado і далі поговоримо про те, якстворювати власні асинхронні обробники засобами Tornado. Але це згодом.