Domanda Startare script python tramite bottone html

Capisco. Puoi usare un framework python per gestire le richieste http come Django o Flask e scrivere il tuo script lì. Poi con una semplice call quando premi il pulsante nel sito web, manda la richiesta al tuo server python che la esegue


400px-Mtv-diagram.png
 
  • Mi piace
Reazioni: CokePhi e 0xbro
Se è come dici tu allora è tutto convertibile in Javascript.
Sono tutte operazioni di select, insert e update
Ho un file csv da aprire dove ogni riga è un dizionario che contiene dei dati di un giocatore.
Una volta fatta questa lista di dizionari cerco nel db se questo giocatore non c'è e lo inserisco
Allora, vediamo di fare chiarezza.
Se le operazioni che devi compiere sono server-side (come query DB, lettura file server, ecc) non puoi passare da Javascript, in quanto è un linguaggio client-side (ad eccezzione fatta per Node.JS ma è un'altra cosa che non sto a spiegare nel dettaglio) e ciò vuol dire che viene interpretato ed eseguito da un client (in questo caso il browser) sulla macchina dell'utente, quindi non ha accesso a risorse sulla macchina server. Sei costretto ad utilizzare un linguaggio server-side che venga interpellato tramite chiamate HTTP eseguite dal client verso il server, in questo caso chiamato webserver.

Quello che ti consiglio io è di tirare su un backend con Django in python (visto che hai familiarità con il linguaggio) e gestire le poche chiamate server-side che devi fare tramite quello. Puoi usare questa guida fornita MDN per iniziare a comprendere come funziona Django e riuscire ad implementare le tue necessità.
In seguito, grazie a Javascript, potrai effettuare chiamate AJAX verso il tuo backend per compiere operazioni o recuperare dati. Qui trovi info utili sul protocollo di comunicazione HTTP.

Se nel corso dell'opera hai problemi o dubbi non esitare a scrivere qui per chiarimenti, sarò felice di aiutarti :)

P.S.: @FreeWar evitiamo di dare disinformazione, grazie
 
  • Mi piace
Reazioni: zipippino e Δnto
Stavo giusto cercando:


Ma questo è per Node.JS... la vedo dura vada con Javascript vanilla su un browser :\

Per fare ciò da sito web, come diceva @zipippino, devi richiamare una pagina python presente sul webserver (tramite AJAX) che esegua lo script sulla macchina server.
Se vuoi farlo lato client la vedo dura...
 
  • Mi piace
Reazioni: zipippino
Django, come scritto prima di me usa l'architettura MVC - che io sappia non puoi semplicemente inserire il tuo codice in views.py, specialmente se devi performare operazioni lato server-db. Bisogna creare un Model e poi puoi usare views per interagirci. Ti consiglio di andare sulla documentazione ufficiale e seguire le guide su come creare un progetto. Molto semplice soprattutto se si hanno le basi di python.
 
  • Mi piace
Reazioni: zipippino
Django, come scritto prima di me usa l'architettura MVC - che io sappia non puoi semplicemente inserire il tuo codice in views.py, specialmente se devi performare operazioni lato server-db. Bisogna creare un Model e poi puoi usare views per interagirci. Ti consiglio di andare sulla documentazione ufficiale e seguire le guide su come creare un progetto. Molto semplice soprattutto se si hanno le basi di python.
Ah beh pensavo fosse dato per scontato ciò hahaha.
La guida che gli ho passato spiegava tutto.
Non sono entrato nel dettaglio dato che non conosco bene Python, però MVC ho ben presente come funzioni :)
 
  • Mi piace
Reazioni: zipippino
Ah beh pensavo fosse dato per scontato ciò hahaha.
La guida che gli ho passato spiegava tutto.
Non sono entrato nel dettaglio dato che non conosco bene Python, però MVC ho ben presente come funzioni :)


Non era una chiarificazione per te quanto per l'utente che ha postato la domanda, visto che dalla sua risposta traspariva di aver capito che importando il modulo in views.py sarebbe bastato.
Non sono troppo convinto invece che sia necessario creare una parte client, tantomeno usare AJAX.

@.Marinov.

Il tutto puo' essere fatto tramite server side usando localhost.
Senza complicare il tutto, una volta creato il modello puoi performare le tue CRUD operations a seconda della chiamata HTTP che performi. Sto dando per scontato che tu sia a conoscenza dell'architettura RESTful
 
  • Mi piace
Reazioni: zipippino
Un altro semplice modo è far eseguire un shell_exec tramite una pagina PHP. Cosa ti serve:
- Server PHP, se utilizzi pagine PHP lo hai
- L'utente che gestisce il server PHP deve poter eseguire il comando python/python3
- Pagina html che ha un bottone che reindirizza ad una pagina php

Se hai tutto questo puoi semplicemente far che all'apertura della pagina php viene eseguito shell_exec('python /path/to/script')

Questa è solo una prova, ovviamente assicurati che non pesi troppo sulla pagina PHP, una volta eseguito lo script dovrebbe subito rispondere all'utente.
 
  • Mi piace
Reazioni: zipippino
Dovrei startare questo script python tramite un sito, non so come spiegarti meglio xD
Una volta che vado su miosito.it/inserisci.php o inserisci.html o inserisci.js vorrei che ci fosse un pulsante submit e lo script parta
 
Stavo giusto cercando:

Dovrei dare una cosa del genere?

function execute(command) {

const exec = require('child_process').exec


exec(command, (err, stdout, stderr) => {

process.stdout.write(stdout)

})

}


execute('mio_script.py')
 
Se lo script python non contiene chissà cosa possiamo aiutarti a convertirlo magari in Javascript.
Sono tutte operazioni di select, insert e update
Ho un file csv da aprire dove ogni riga è un dizionario che contiene dei dati di un giocatore.
Una volta fatta questa lista di dizionari cerco nel db se questo giocatore non c'è e lo inserisco