Podívejte se na všechny díly seriálu nebo na zdrojáky příkladu.
Dnes to bude z trošku jiného soudku. Uděláme si jen jeden krok, o to bude zajímavější.
První věc, kterou jsme dosud dělali v handleru (views/views.py: list/edit/delete) bylo, že jsme si pořídili data. Pyramid ale umožňuje pro routu definovat context factory, která nám ta data připraví, takže v handleru už nemusíme dělat nic.
# nezapomeňte git pull cd step08 python setup.py develop pserve --reload development.ini
Když se teď podíváte na __init__.py, tak uvidíte:
config.add_route("list", "/list/{model}", factory="faapp.model.resources.OrmContext", )a podobné. Co to znamená? Předtím, než je vyvolán handler je na zavolaná tahleta factory s parametrem request, a výsledek je uložen do request.context a ten je pak samozřejmě k dispozici v handleru. Mrkněte se do views/views.py a tam uvidíte, že přes context si jen sáhnu pro data, která potřebuju. Kód pro vyhledání těch dat pak najdete v model/resources.py. Namítnete, že kód se vlastně jenom přesunul z jednoho místa na jiné, a budete mít pravdu. Mě je ale tenhle přístup sympatický z důvodu logiky aplikace.
Příště uděláme jen takovou blbůstku: Zařídíme, aby v našich formalchemy šablonách bylo k dispozici _ pro překlad.
Jmenuju se Petr Blahoš. Programuju něco přes 20 let. Tady se snažím psát hlavně o Pythonu, webovém frameworku Pyramid, a občas i o něčem úplně jiném.
Přečteno 18 878×
Přečteno 11 671×
Přečteno 8 982×
Přečteno 8 516×
Přečteno 8 316×