Diskuze: Spouštěni python programu přes html tlačítko.
Člen
Zobrazeno 13 zpráv z 13.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
Já jsem tě popravdě moc nepochopil.. chceš docílit toho, aby když klikneš tak se otevřel program na klientovém počítači, a nebo chceš docílit toho že se program který je na serveru po kliknutí na tlačítko vnoří do stránky?
Chci docílit toho, když zmáčknu tlačítko tak se spustí program.
Řekl bych, že ve druhém komentáři jsi nesdělil nic nového…
Když zmáčknu tlačítko tak se spustí program na pozadí serveru
Například by mohlo fungovat:
<?php
$pythonfile = escapeshellcmd('python blabla.py');
$callpython = shell_exec($pythonfile);
echo($callpython)
?>
a nebo
$pythonfile = escapeshellcmd('python blabla.py');
shell_exec($pythonfile);
Předpokladam že to je PHP, takze tomu vubec nerozumim jak to mam přidat od html souboru aby to moje tlacitko fungovalo.
Pošli HTML soubor který máš.
A příště ti doporučuji, když budeš zakládat téma, rovnou poslat HTML soubor, napsat normálně co chceš a ne napsat že chceš otevřít soubor, a když se tě někdo zeptá jak ho chceš otevřít tak napíšeš že ho chceš otevřít. Jinak samotné HTML je značkovací jazyk, a nemůžeš s ním nijak manipulovat se serverem.
Do html souboru php nepřidáš, musíš mít .php soubor.
Neni uplne jasne, zeho chces docilit a jak moc velke mas znalosti klient (uzivatel, browser) htm, css, js, server python, apache...
Mozna se ptas na js ajax, jquery post / get, form get/post. Ajax je mozne resit i prostym pridanim tagu script. V pripade php by to vypadalo takto:
--- xx.html ---
<script src="nova_stranka.php"></script>
<!--script src="script.js"></script-->
--- nova_stranka.php ---
<?php echo 'alert(123);'; ?> // js kod, protoze tag script vklada js kod
Pokud to chces do js promene, tak js http-request / jquery.
Nemam zdani, zda a jak se da spustit python jako sluzba na serveru. Pokud to
nepujde, tak by to slo pres to, co ti uz psali. Pres php zavolas cmd() a spustit
python z prikazoveho radku.
--- nova_stranka2.php ---
<?php
$pythonfile = escapeshellcmd('python blabla.py');
$callpython = shell_exec($pythonfile);
echo($callpython)
?>
Mozna si muzes vyzkouset jeste jinou formu ajaxu.
<iframe src="" id=xxx></iframe>
<input type=button onclick="document.getElementById('xxx').src='novastranka2.php';" value="klikni">
<a href="#ajax1" onclick="document.getElementById('xxx').src='novastranka2.php'; return false;">klikni</a>
<a href="#ajax2" onclick="this.yyy.src='novastranka2.php'; this.yyy.style.visibility:visible; return false;">klikni <iframe src="" name=yyy style="visibility:hidden;"></iframe></a>
K tomu aby ti to tlačítko fungovalo tak potřebuješ v PHP vytvořit podmínku, která vytvoří událost pouze potom co se uživatel klikne na submit tlačítko například:
<?php
if(isset($_POST['nazev'])) {
$pythonfile = escapeshellcmd('python blabla.py');
$callpython = shell_exec($pythonfile);
echo($callpython)
}
?>
a u $_POST['nazev'] si to přepíšeš na atribut name který máš v tlačítku (myslím tím name=""), ono by to chtělo když se chce něco spustit na serveru, taky nějaký server-side jazyk umět, protože HTML je pouze "design a text" a nemůže ovlivňovat server, dělat podmínky, a tak dále.
Prakticky to máš tady:
index.php
<?php
if(isset($_POST['nazev'])) {
$pythonfile = escapeshellcmd('python blabla.py');
$callpython = shell_exec($pythonfile);
echo($callpython);
}
?>
<form method="post">
<input type="button" name="nazev" value="Spustit">
</form>
Takže buď nemanipulovat se serverem, a nebo se naučit minimálně základy nějakého serverového jazyka (např: php, výběr už je na vás), html je klientský jazyk, tudíž nejde manipulovat se serverem.
K tomu aby se pokaždé když dá uživatel F5 či resetuje stránku, neodesílal příkaz, se dá předejít bud formulářem který bude odkazovat na samostatný PHP soubor který provede danou akci a po provedení zas uživatele odešle na stránku kde je tlačítko (např: index.html) přes header("Location: index.html"); a myslím že i ajaxem, ale to jsem nikdy nedělal, takže to přenechám jiným..
Takže by to vypadalo následovně:
index.html
<form action="akce.php" method="post">
<input type="submit" name="akce" value="Spustit">
</form>
akce.php
if(isset($_POST['name'])) {
$pythonfile = escapeshellcmd('python blabla.py');
$callpython = shell_exec($pythonfile);
echo($callpython);
header("Location: index.html");
} else {
header("Location: index.html");
}
Nevím, jestli to bude fungovat, psal jsem to pouze tady v komentářích a ani jsem to netestoval ale mělo by.. pokud budeš potřebovat další akce se serverem tak bych doporučil se nenaučit nějaký server-side jazyk, a uvidíš že to bude mnohem rychlejší a efektivnější..
Čau, pokud je to ještě aktuální, z tohodle tutoriálu jsem čerpal. Je
to na raspberry a spouští bash - já jsem takhle spuštěl .py. Je to celkem
na prasáka, ale funguje to 
Zobrazeno 13 zpráv z 13.
