Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Pope 18. 07. 2018, 14:45:09

Název: Interakce HTML stránky s Pythonem bez frameworku
Přispěvatel: Pope 18. 07. 2018, 14:45:09
Ahojte,

Chci udělat jednoduchou HTML5 stránku s formulářema a tlačítkama, atp.. v pythonu budu mít napsaný backend(databáze,atd...). Otázka zní: Co je nejjednodužší použít pro interakci mezi oběma? Př.

Kliknu na tlačítko -> zavolám python script -> ten vyprodukuje výsledek(jedno číslo, nebo list čísel, nebo mapa atp..) a to přepošle zpět do HTML na vykreslení.

PS: Žádný framework typu Flask, Ninja, atd... nechci

Díky
Název: Re:Python,HTML+?
Přispěvatel: fernet 18. 07. 2018, 15:20:00
Říká se tomu CGI :)
Název: Re:Python,HTML+?
Přispěvatel: Jenda 18. 07. 2018, 15:21:12
Tak Python se dá používat jako CGI, ale je to neodladěný opruz (nginx to neumí vůbec, lighttpd nenastavuje environment a pak nefunguje UTF-8) a navíc každý request znamená spuštění interpretru, což trvá.

Docela jsem to zkoumal a pokud nechceš žádný framework s trvale běžící aplikací (Bottle…) a/nebo templatovacím systémem, tak máš smůlu.
Název: Re:Python,HTML+?
Přispěvatel: Jenda 18. 07. 2018, 15:22:20
Tak Python se dá používat jako CGI, ale je to neodladěný opruz (nginx to neumí vůbec, lighttpd nenastavuje environment a pak nefunguje UTF-8) a navíc každý request znamená spuštění interpretru, což trvá.

Docela jsem to zkoumal a pokud nechceš žádný framework s trvale běžící aplikací (Bottle…) a/nebo templatovacím systémem, tak máš smůlu.
Název: Re:Python,HTML+?
Přispěvatel: fernet 18. 07. 2018, 15:29:35
pro apache je mod_python, ovšem ten se pár let už nevyvíjí, tak bůhví v jakém je to stavu
Název: Re:Python,HTML+?
Přispěvatel: Messa_ 18. 07. 2018, 15:52:02
Nejjednodušší je právě ten Flask. Jestli ti ale vyloženě vadí cokoliv, co ti z nějakého důvodu připomíná framework, tak můžeš napsat něco přímo nad WSGI rozhraním, nebo použít modul werkzeug (na kterém běží Flask). Tohle všechno jsou jenom kusy kódu implementující WSGI rozhraní, takže pak to potřebuješ spustit v nějakém serveru - např. gunicorn. To typicky bývají dlouhoběžící procesy, ale třeba najdeš konfiguraci, kdy se ten proces s aplikací spouští on-demand. Možná i systemd tohle umí?

Nebo můžeš použít něco z async světa, např. aiohttp. Opět dlouhoběžící procesy, ale aspoň stačí jen jeden :) Opět, můžeš to nějak nakonfigurovat tak, aby se to spustilo on-demand.

Alternativou je AWS Lambda - tam taky dodáš vlastně jen jednoduchou funkci.

mod_python prosím nechme v hlubinách zapomnění.
Název: Re:Python,HTML+?
Přispěvatel: . 18. 07. 2018, 15:52:02
Ahojte,

Chci udělat jednoduchou HTML5 stránku s formulářema a tlačítkama, atp.. v pythonu budu mít napsaný backend(databáze,atd...). Otázka zní: Co je nejjednodužší použít pro interakci mezi oběma? Př.

Kliknu na tlačítko -> zavolám python script -> ten vyprodukuje výsledek(jedno číslo, nebo list čísel, nebo mapa atp..) a to přepošle zpět do HTML na vykreslení.

PS: Žádný framework typu Flask, Ninja, atd... nechci

Díky
A můžete říct, proč to nechcete?

Je to zhruba 5 řádků kódu na backendu a 10 řádků javascriptu na frontendu a můžete si to použít jak chcete a nebudete po každém stisku překreslovat celou stránku.

Pokud to chcete postaru, tak je asi nejlepší PHP.
Název: Re:Python,HTML+?
Přispěvatel: Messa_ 18. 07. 2018, 15:56:48
Když už by to z nějakého důvodu muselo být mod_něco pod Apachem, tak aktuálním řešením je mod_wsgi.
https://modwsgi.readthedocs.io/
Jak už z názvu vyplývá, využívá WSGI rozhraní, takže si pod tím můžeš spustit cokoliv ve Flasku, werkzeugu apod.
Název: Re:Interakce HTML stránky s Pythonem bez frameworku
Přispěvatel: Pavel Tišnovský 19. 07. 2018, 10:17:31
Vím, že zazněla podmínka "framework ne", jenže pod tím jménem se dneska skrývá všechno, od minimalistických věcí na pár stovek řádků (nebo i standardní modul https://docs.python.org/3.5/library/http.server.html) až po řekněme Django.

Jeden opravdu lehkotonážní je https://cherrypy.org/
Název: Re:Interakce HTML stránky s Pythonem bez frameworku
Přispěvatel: eee 26. 07. 2018, 14:03:30
To mu nemůžete dát normální radu?

Základní obsluha http:
https://docs.python.org/2/library/simplehttpserver.html
https://docs.python.org/3.7/library/http.server.html

Takto napíšeš jednoduše python program, který trvale běží a obsluhuje http požadavky.
Název: Re:Interakce HTML stránky s Pythonem bez frameworku
Přispěvatel: eee 26. 07. 2018, 14:22:04
A kdybys  chtěl komunikovat nějak intenzivněji a místo http komunikace použít websockety, pak doporučuji tuhle knihovnu: https://github.com/dpallot/simple-websocket-server

Dělám s tím interaktivní python aplikace s gui přes prohlížeč, osvědčilo se mi to třeba na androidu.