2011-09-18 20 views
33

Sono molto nuovo in Python. Basta sapere cos'è Python. Ho creato il codice qui sotto (in Python IDLE):Come eseguire script Python nella pagina web

print "Hi Welcome to Python test page\n"; 
print "Now it will show a calculation"; 
print "30+2="; print 30+2; 

Poi ho salvato la pagina nel mio localhost come index.py

ho eseguito lo script utilizzando http://localhost/index.py

Ma non ha mostrato script Python eseguito. invece ha mostrato il codice sopra come HTML. Dov'è il problema? per favore qualcuno mi dice come eseguire python nella pagina web?

+4

questo è python non php, devi configurare python web framework e, g, webpy o django ecc. e configurare appache con mod_python. –

+1

prova whisky !! : D "WSGI" (interfaccia gateway server Web). – Arunmu

+2

È possibile eseguire Python in una pagina Web (sul lato client) utilizzando framework come Pyjamas e Skulpt. –

risposta

26

Affinché il codice per mostrare, è necessario diverse cose:

In primo luogo, ci deve essere un server che gestisce le richieste HTTP. Al momento stai semplicemente aprendo un file con Firefox sul tuo disco rigido locale. È richiesto un server come Apache o qualcosa di simile.

In secondo luogo, supponendo che ora si disponga di un server che serve i file, sarà necessario anche qualcosa che interpreti il ​​codice come codice Python per il server. Per gli utenti Python la soluzione per andare al giorno d'oggi è mod_wsgi. Ma per i casi più semplici si potrebbe attaccare con CGI (maggiori informazioni here), ma se si desidera produrre facilmente pagine Web, si dovrebbe andare con un framework web Python esistente come Django.

Impostare questo può essere piuttosto il problema, quindi preparatevi.

14

Come altri hanno sottolineato, esistono molti framework Web per Python.

Ma, visto che si è appena iniziato con Python, uno script CGI semplice potrebbe essere più appropriato:

  1. Rinominare lo script per index.cgi. È inoltre necessario eseguire chmod +x index.cgi per concedere i privilegi di esecuzione.

  2. aggiungere queste 2 righe all'inizio del file:

 
#!/usr/bin/python 
print('Content-type: text/html\r\n\r') 

Dopo questo codice Python dovrebbe funzionare proprio come nel terminale, tranne l'uscita va al browser. Quando funziona, è possibile utilizzare the cgi module per recuperare i dati dal browser.

Nota: questo presuppone che il server Web esegua Linux. Per Windows, potrebbe invece funzionare #!/Python26/python.

+2

Per il web hosting che sto usando, ho dovuto aggiungere '#!/Usr/bin/env python # - * - coding: UTF-8 - * -' invece. – GrandAdmiral

7

Se si utilizza il proprio computer, installare un software chiamato XAMPP (o funziona anche WAMPP). Questo è fondamentalmente un server web che gira solo sul tuo computer. Quindi, una volta installato, vai alla cartella xampp e fai doppio clic sulla cartella htdocs. Ora quello che devi fare è creare un file html (lo chiamerò runpython.html). (Ricordarsi di spostare il file python per htdocs pure)

Aggiungi in questo per il vostro corpo html (e gli ingressi, se necessario)

<form action = "file_name.py" method = "POST"> 
    <input type = "submit" value = "Run the Program!!!"> 
</form> 

Ora, nel file python, ci sono fondamentalmente andando essere la stampa fuori codice HTML.

#We will need a comment here depending on your server. It is basically telling the server where your python.exe is in order to interpret the language. The server is too lazy to do it itself. 

    import cgitb 
    import cgi 

    cgitb.enable() #This will show any errors on your webpage 

    inputs = cgi.FieldStorage() #REMEMBER: We do not have inputs, simply a button to run the program. In order to get inputs, give each one a name and call it by inputs['insert_name'] 

    print "Content-type: text/html" #We are using HTML, so we need to tell the server 

    print #Just do it because it is in the tutorial :P 

    print "<title> MyPythonWebpage </title>" 

    print "Whatever you would like to print goes here, preferably in between tags to make it look nice" 
+0

Scusate per il bizzarro indenting che ho modificato alcune volte – ytpillai

5

utilizzando la libreria flask in Python è possibile ottenere quello. ricorda di memorizzare la tua pagina HTML in una cartella denominata "templates" all'interno del quale stai eseguendo il tuo script python.

modo la cartella sarà simile

  1. modelli (cartella che dovrebbe contenere il file HTML)
  2. tuo script Python

questo è un piccolo esempio dello script python. Questo semplicemente controlla il plagio.

from flask import Flask 
from flask import request 
from flask import render_template 
import stringComparison 

app = Flask(__name__) 

@app.route('/') 
def my_form(): 
    return render_template("my-form.html") 

@app.route('/', methods=['POST']) 
def my_form_post(): 

text1 = request.form['text1'] 
text2 = request.form['text2'] 
plagiarismPercent = stringComparison.extremelySimplePlagiarismChecker(text1,text2) 
if plagiarismPercent > 50 : 
    return "<h1>Plagiarism Detected !</h1>" 
else : 
    return "<h1>No Plagiarism Detected !</h1>" 
if __name__ == '__main__': 
    app.run() 

Questo un piccolo modello di file HTML che viene utilizzato

<!DOCTYPE html> 
<html lang="en"> 
<body> 
    <h1>Enter the texts to be compared</h1> 
    <form action="." method="POST"> 
     <input type="text" name="text1"> 
     <input type="text" name="text2"> 
     <input type="submit" name="my-form" value="Check !"> 
    </form> 
</body> 
</html> 

Thid è un piccolo modo po 'attraverso il quale è possibile ottenere un semplice compito di confronto di due stringhe e che può essere facilmente modellato per adattarsi le tue esigenze

Problemi correlati