Когда вы пишете код, используя одиночные игры, скажем, регистратор или соединение с базой данных, а затем вы обнаруживаете, что вам нужно больше одного журнала или более одной базы данных, у вас проблемы.
Синглоты делают очень трудно переходить от них к обычным объектам.
Кроме того, слишком легко написать однопоточный однопоточный.
Вместо того, чтобы использовать синглтоны, вы должны передать все необходимые объекты полезности от функции к функции. Это можно упростить, если вы переместите все их в вспомогательный объект, например:
void some_class::some_function(parameters, service_provider& srv)
{
srv.get<error_logger>().log("Hi there!");
this->another_function(some_other_parameters, srv);
}
Все внутри {{ ... }}
- это похожее на Python выражение. Вам не нужно использовать другой {{ ... }}
внутри, чтобы ссылаться на переменные.
Отбросить дополнительные скобки:
<h1>you uploaded {{ name }}<h1>
<a href="{{ url_for('moremagic', filename=name) }}">Click to see magic happen</a>
(Обратите внимание, что функция url_for()
принимает конечную точку name , а не URL-путь, по умолчанию имя имени функции moremagic
в вашем примере).