Я говорив сьогодні з моїм колегою про веб-рамки Python та наші враження про них. Я сказав йому, що я думаю, що Flask з глобальним запитом погано пахне і є антидією.
У документах говорять про контекст запиту:
На відміну від цього, під час обробки запиту існує кілька інших правил:
- поки запит активний, локальні об'єкти контексту (flask.request та інші) вказують на поточний запит.
- будь-який код може отримати цей об'єкт у будь-який час.
Я думаю, що я розумію ідею цього дизайнерського рішення - зробити додаток більш простим. Це просто компроміс, як у випадку з місцевими жителями теми :
Так, зазвичай не така яскрава ідея використовувати місцеві локальні мережі. Вони створюють неприємності для серверів, які не засновані на концепції потоків, і ускладнюють великі програми для обслуговування. Однак Flask просто не призначений для великих додатків або асинхронних серверів. Фляжка хоче зробити швидко та просто написати традиційну веб-програму.
Чи виправлення глобального об'єкта поточною інформацією запиту є анти-шаблоном?
Я вважаю, що це так, адже це, на думку аналізатора статичного коду, глобальний стан, хоча це не так. І я як програміст не зрозумію, як це працює, не уважно читаючи документи . І це має наслідки на тестах .
Чи не є хорошою практикою передавати запит як аргумент поглядам? Я думаю, що це більш читабельне, явне і простіше налагодження. І уникає глобальної держави.