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. Але це згодом.