Interakce HTML stránky s Pythonem bez frameworku

Pope

Interakce HTML stránky s Pythonem bez frameworku
« kdy: 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
« Poslední změna: 18. 07. 2018, 16:40:50 od Petr Krčmář »


fernet

Re:Python,HTML+?
« Odpověď #1 kdy: 18. 07. 2018, 15:20:00 »
Říká se tomu CGI :)

Jenda

Re:Python,HTML+?
« Odpověď #2 kdy: 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.

Jenda

Re:Python,HTML+?
« Odpověď #3 kdy: 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.

fernet

Re:Python,HTML+?
« Odpověď #4 kdy: 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


Messa_

Re:Python,HTML+?
« Odpověď #5 kdy: 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í.

.

Re:Python,HTML+?
« Odpověď #6 kdy: 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.

Messa_

Re:Python,HTML+?
« Odpověď #7 kdy: 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.

Pavel Tišnovský

Re:Interakce HTML stránky s Pythonem bez frameworku
« Odpověď #8 kdy: 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/

eee

Re:Interakce HTML stránky s Pythonem bez frameworku
« Odpověď #9 kdy: 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.

eee

Re:Interakce HTML stránky s Pythonem bez frameworku
« Odpověď #10 kdy: 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.