Použití Python Flask v komerční sféře

Použití Python Flask v komerční sféře
« kdy: 20. 06. 2019, 09:12:17 »
Dobrý den,

chtěl jsme se zeptat, setkal se někdo z Vás s nějakou českou firmou, který by vyvíjela aplikace ve Flask frameworku? Já jsem se zatím setkal pouze s jednou která v tom vyvíjela aplikace pro skladové hospodářství resp inventury skladu. Nevíte náhodou někdo o dalších firmách? Jde o to jestli má cenu se tento skvělý framework učit i z důvodu výdělku?

Děkuji


gill

  • ****
  • 270
    • Zobrazit profil
    • E-mail
Re:Použití Python Flask v komerční sféře
« Odpověď #1 kdy: 20. 06. 2019, 10:25:46 »
Ten framework je jednoduchy, muzete ho zacit pouzivat bez uceni. Proto se neobevuje v inzeratech. Spis hledejte sqlalchemy.

user

Re:Použití Python Flask v komerční sféře
« Odpověď #2 kdy: 23. 06. 2019, 11:18:10 »
Ako napisal gill, taky hello world do prehliadaca je tusim na 3 riadky kodu. Zaklad Flask-u sa da pochopit za jeden den, mozno potom este chvilku trva, kym clovek dobre pochopi kontexty a pracu s nimi (Application context, Request context), ale je to naozaj jednoduche. Sqlalchemy sa s Flaskom moze, ale nemusi pouzivat, ale stoji za to s nim vediet pracovat. Dnes si uz neviem predstavit zlozitejsiu databazovu aplikaciu bez tohoto ORM.

Prakticky, Flask je iba taka nadstavba nad frameworkom Werkzeug. Poznam viacero firiem, pre ktory bol Flask trochu zvazujuci, tak si ho prerobili alebo si nad Werkzeug naprogramovali podobny framework. A to uz je potom o tom, aby si spravne chapal ako funguje Werkzeug, WSGI, ako to spravne nastavit na produkcnu aplikaciu, ci a ako pouzivat procesy a thready... Tam uz je toho vela sa co ucit (resp. skusat).

Re:Použití Python Flask v komerční sféře
« Odpověď #3 kdy: 23. 06. 2019, 20:11:00 »
Python se dle meho nazoru posunuje smerem k asynchronim aplikacim.
Flask je z tohoto pohledu jiz prekonanym konceptem, takze doporucuji se take podivat na asyncio alternativy k Flasku.


gill

  • ****
  • 270
    • Zobrazit profil
    • E-mail
Re:Použití Python Flask v komerční sféře
« Odpověď #4 kdy: 23. 06. 2019, 20:27:06 »
Python se dle meho nazoru posunuje smerem k asynchronim aplikacim.
Flask je z tohoto pohledu jiz prekonanym konceptem, takze doporucuji se take podivat na asyncio alternativy k Flasku.

Asynchronni alternativa nikdy nebude stejne robustni jako oddeleny proces na request. Asynchronni komunikace s SQL je navic zbytecna. Vetsinou jsem se setkal s resenim flask + asynchronni server pro websocketova spojeni.


Re:Použití Python Flask v komerční sféře
« Odpověď #5 kdy: 24. 06. 2019, 14:12:23 »
Sqlalchemy sa s Flaskom moze, ale nemusi pouzivat, ale stoji za to s nim vediet pracovat. Dnes si uz neviem predstavit zlozitejsiu databazovu aplikaciu bez tohoto ORM.
Zvláštní, mám to přesně naopak, vůbec nevím k čemu je tahle vrstva dobrá. Nestačí umět používat repository pattern a unit of work? Dost bych taky nespoléhal, že ti ORM postaví rozumný schéma.

gill

  • ****
  • 270
    • Zobrazit profil
    • E-mail
Re:Použití Python Flask v komerční sféře
« Odpověď #6 kdy: 24. 06. 2019, 14:52:17 »
Zvláštní, mám to přesně naopak, vůbec nevím k čemu je tahle vrstva dobrá.

aby ušetřila práci. Zjednodušuje dotazování, nemusíte stále dokola psát stejné podmínky joinů. Když dlouhodobě pracujete se složitější databází, tak se ORM vyplatí.

že ti ORM postaví rozumný schéma.

ORM postaví takové schéma, jaké definujete. SQLAlchemy nijak neomezuje.

Re:Použití Python Flask v komerční sféře
« Odpověď #7 kdy: 24. 06. 2019, 17:17:28 »
Zvláštní, mám to přesně naopak, vůbec nevím k čemu je tahle vrstva dobrá.

aby ušetřila práci. Zjednodušuje dotazování, nemusíte stále dokola psát stejné podmínky joinů. Když dlouhodobě pracujete se složitější databází, tak se ORM vyplatí.

že ti ORM postaví rozumný schéma.

ORM postaví takové schéma, jaké definujete. SQLAlchemy nijak neomezuje.

Máme s SQLAlchemy zkušenost a v ničem nám nepomohla. To že schovává SQL mi přijde jako nevýhoda. Co se týká generování schématu, ne děkuji. Pracujem s Postgresem, nepotřebujem nějaký magický nástroj co si poradí s každou databází. Schéma se verzuje, každá změna je jako SQL skript, nic v Pythonu tam nechcem.

gill

  • ****
  • 270
    • Zobrazit profil
    • E-mail
Re:Použití Python Flask v komerční sféře
« Odpověď #8 kdy: 24. 06. 2019, 17:35:45 »
Zvláštní, mám to přesně naopak, vůbec nevím k čemu je tahle vrstva dobrá.

aby ušetřila práci. Zjednodušuje dotazování, nemusíte stále dokola psát stejné podmínky joinů. Když dlouhodobě pracujete se složitější databází, tak se ORM vyplatí.

že ti ORM postaví rozumný schéma.

ORM postaví takové schéma, jaké definujete. SQLAlchemy nijak neomezuje.

Máme s SQLAlchemy zkušenost a v ničem nám nepomohla.

Jak dlouho, na kolika projektech jste ji používali? Zvýšená produktivita se projeví až po čase.

To že schovává SQL mi přijde jako nevýhoda.

nic neschovává, dotazy generuje transparentně. Jen nemusíte psát stále dokola stejné části dotazů.

Co se týká generování schématu, ne děkuji. Pracujem s Postgresem, nepotřebujem nějaký magický nástroj co si poradí s každou databází. Schéma se verzuje, každá změna je jako SQL skript, nic v Pythonu tam nechcem.

Máte příklad tabulky, kterou SQLAlchemy nedokáže vygenerovat? Příklad dotazu, který nelze formulovat?

Re:Použití Python Flask v komerční sféře
« Odpověď #9 kdy: 24. 06. 2019, 20:36:30 »
Python se dle meho nazoru posunuje smerem k asynchronim aplikacim.
Flask je z tohoto pohledu jiz prekonanym konceptem, takze doporucuji se take podivat na asyncio alternativy k Flasku.

Asynchronni alternativa nikdy nebude stejne robustni jako oddeleny proces na request. Asynchronni komunikace s SQL je navic zbytecna. Vetsinou jsem se setkal s resenim flask + asynchronni server pro websocketova spojeni.

Znate C10k problem?
https://en.wikipedia.org/wiki/C10k_problem

Par let jsem stavel server na presne stejnem konstruktu, ktery zde uvadite "... nebude stejne robustni jako oddeleny proces na request ...".
Neni to pravda. Viz treba Apache vs NGINX.

gill

  • ****
  • 270
    • Zobrazit profil
    • E-mail
Re:Použití Python Flask v komerční sféře
« Odpověď #10 kdy: 24. 06. 2019, 23:30:20 »
Znate C10k problem?

ktera SQL databaze dokaze soucasne obsluhovat 10k spojeni?

Re:Použití Python Flask v komerční sféře
« Odpověď #11 kdy: 25. 06. 2019, 09:14:55 »
Znate C10k problem?

ktera SQL databaze dokaze soucasne obsluhovat 10k spojeni?

V asynchronnim svete tu otazku musite polozit jinak: ktera SQL databaze je schopna obsluhovat 10k pripojenych klientu.
Spojeni bude radove mene. A odpoved je, ze napr. PostgreSQL.

Zrovna ted resime jeden "brownfield" projekt, ktera byla puvodne napsana v synchronnim paradigmatu. Jeden pozadavek od klienta = jedno spojeni = jedno vlakno (process) = jedno spojeni do PostgreSQL databaze. Samozrejme toto prestalo skalovat, neprekvapive kdyz se priblizila hranice 10k pripojenych klientu. Cely kod je v podstate na vyhozeni (je to Java).
Resime to prepisem do Python/asyncio, prave protoze pak neplati vyse uvedena spojka.
V asynchronnim svete muzete mit klidne 10k spojeni, 16 procesu/vlaken (protoze mate treba 16 CPU jader), k tomu pak napr. 64 spojeni na databazi (zde mate argument proc async je pro databaze vhodny) a cela aplikace bezi paradne.
Je to, protoze webove aplikace jsou v dnesni dobe I/O bound ( https://en.wikipedia.org/wiki/I/O_bound ) a tudiz nema smysl pro ne blokovat cely proces potazmo CPU vlakno.
A proto si stale myslim (prakticky overeno), ze pro webove aplikace je synci pristup prekonany.

gill

  • ****
  • 270
    • Zobrazit profil
    • E-mail
Re:Použití Python Flask v komerční sféře
« Odpověď #12 kdy: 25. 06. 2019, 12:20:39 »
V asynchronnim svete tu otazku musite polozit jinak: ktera SQL databaze je schopna obsluhovat 10k pripojenych klientu.

to znamena co? I v asynchronnim svete coroutiny sdili nejaky connection pool, ktery je urcite mensi nez 10k spojeni, typicky radove desitky. Bottleneck je databaze, ne aplikace.

Re:Použití Python Flask v komerční sféře
« Odpověď #13 kdy: 25. 06. 2019, 14:29:32 »
Zvláštní, mám to přesně naopak, vůbec nevím k čemu je tahle vrstva dobrá.

aby ušetřila práci. Zjednodušuje dotazování, nemusíte stále dokola psát stejné podmínky joinů. Když dlouhodobě pracujete se složitější databází, tak se ORM vyplatí.

že ti ORM postaví rozumný schéma.

ORM postaví takové schéma, jaké definujete. SQLAlchemy nijak neomezuje.

Máme s SQLAlchemy zkušenost a v ničem nám nepomohla.

Jak dlouho, na kolika projektech jste ji používali? Zvýšená produktivita se projeví až po čase.

To že schovává SQL mi přijde jako nevýhoda.

nic neschovává, dotazy generuje transparentně. Jen nemusíte psát stále dokola stejné části dotazů.

Co se týká generování schématu, ne děkuji. Pracujem s Postgresem, nepotřebujem nějaký magický nástroj co si poradí s každou databází. Schéma se verzuje, každá změna je jako SQL skript, nic v Pythonu tam nechcem.

Máte příklad tabulky, kterou SQLAlchemy nedokáže vygenerovat? Příklad dotazu, který nelze formulovat?

Co s tím má společného, jak dlouho jsme co použivali? Nám ta knihovna nepomáhala, já nepíší, že něco snad neumí, ale přímočarost je pro nás přednější a jediná výhoda mi přišla, že se teoreticky dá migrovat na jinou DB. Žádné komplexní věci neděláme, tak ji asi nepotřebujem -- už vůbec ne schéma generované z modelu.

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Použití Python Flask v komerční sféře
« Odpověď #14 kdy: 25. 06. 2019, 16:27:12 »
Python se dle meho nazoru posunuje smerem k asynchronim aplikacim.
Flask je z tohoto pohledu jiz prekonanym konceptem, takze doporucuji se take podivat na asyncio alternativy k Flasku.

Asynchronni alternativa nikdy nebude stejne robustni jako oddeleny proces na request. Asynchronni komunikace s SQL je navic zbytecna. Vetsinou jsem se setkal s resenim flask + asynchronni server pro websocketova spojeni.
Znate C10k problem?
https://en.wikipedia.org/wiki/C10k_problem
Tohle je z přelomu století, teď už není problém ani C10M.