La tasca principal del servidor web és gestionar les sol·licituds HTTP del client. Espera les sol·licituds HTTP que provenen de l’adreça IP i del número de port concrets, gestiona la sol·licitud i torna la resposta del client. Python utilitza el fitxer SimpleHTTPServer mòdul per crear un servidor web a l’instant i servir fàcilment el contingut del fitxer des del servidor. També es pot utilitzar per compartir fitxers. Per a això, heu d'activar aquest mòdul amb la ubicació dels fitxers compartibles. Aquest mòdul ve amb l’intèrpret de Python. No cal instal·lar-lo. Atès que aquest mòdul es combina amb el fitxer http.server mòdul a python3, així que heu d’executar http.server per executar el servidor web a python3. En aquest tutorial es mostra com es pot utilitzar el servidor web per gestionar sol·licituds HTTP i compartir fitxers.
Executeu el servidor web des del terminal
Executeu l'ordre següent per executar el servidor web des del terminal. Si no es defineix cap número de port a l'ordre, el servidor web començarà per defecte al port 8000.
$ python3 -m http.servidor
La següent sortida apareixerà si el servidor web s’inicia correctament. Es prem CTRL + C per aturar el servidor.
Executeu l'ordre següent per iniciar el servidor web al port 8080.
$ python3 -m http.servidor 8080
La següent sortida apareixerà si s'inicia el servidor web al port 8080.
Executeu el servidor web mitjançant l'script Python
Executeu les ordres següents per crear una carpeta anomenada web i aneu a la carpeta. Tots els fitxers de script i fitxers HTML d’aquest tutorial es crearan dins d’aquesta carpeta.
web de $ mkdir$cdweb
Creeu un fitxer HTML anomenat testHTML.html dins del web carpeta amb el següent script. Aquest fitxer es publicarà des del servidor web més endavant.
testHTML.html
< html >< cap >
< títol >
Proveu el servidor web Python
</ títol >
</ cap >
< cos >
< centre >
< img src='logo.jpeg' tot='No s'ha trobat la imatge'/>
< h2 estil='color: verd'>Enhorabona! El vostre servidor web s'està executant correctament.</ h2 >
< pàg >Visita< a href='Www.linuxhint.com'>LinuxHint.com</ a >per obtenir més tutorials sobre Python</ pàg >
</ centre >
</ cos >
</ html >
Exemple-1: executeu el servidor web al número de port específic
Creeu un fitxer python amb el següent script per executar el servidor web al port 8008. http.server S'ha importat el mòdul per executar el servidor web i el fitxer SocketServer S'ha importat el mòdul per gestionar la sol·licitud HTTP provinent del port 8080. Un objecte anomenat Manipulador s'ha creat per gestionar les sol·licituds HTTP. per sempre () La funció es diu per executar el servidor web. No s'ha afegit cap condició de finalització a l'script. Per tant, l'script generarà un error quan l'usuari intenti aturar el servidor.
# Importa el mòdul de servidorimportacióhttp.servidor
# Importa el mòdul SocketServer
importaciósocketerver
# Definiu el número de port
port= 8080
# Crea un objecte per gestionar les sol·licituds HTTP
Manipulador=http.servidor.SimpleHTTPRequestHandler
# Executeu el servidor per sempre per gestionar les sol·licituds HTTP
ambsocketerver.TCPServer(('',port),Manipulador) comhttpd:
imprimir('El servidor web s'executa a http: // localhost:% s'% port)
httpd.servir_per sempre()
Sortida
La següent sortida apareixerà després d'executar l'script anterior.
La llista dels fitxers i la carpeta de la ubicació de l'script es mostrarà si s'executa l'URL següent des del navegador.
Si l'usuari prem CTRL + C des del terminal o prem el botó d'aturada de l'editor PyCharm, es mostrarà el següent missatge d'error. Aquest problema s'ha resolt al següent exemple d'aquest tutorial.
Exemple 2: executeu el servidor web amb el número de port definit per la línia d'ordres
Creeu un fitxer python amb el següent script per executar un servidor web al port concret si l'argument de línia de comandes dóna el número de port; en cas contrari, s'utilitzaran 5000 com a port per defecte. sys S'ha importat el mòdul a l'script per llegir els valors de l'argument de la línia d'ordres. provar-excepte S'ha afegit un bloc a l'script per gestionar l'error quan l'usuari intenta aturar el servidor. Si apareix l'excepció KeyboardInterrupt després d'executar el servidor, llavors Tanca() es cridarà a la funció per aturar el servidor web.
# Importa el mòdul de servidorimportacióhttp.servidor
# Importa el mòdul SocketServer
importaciósocketerver
# Importa el mòdul sys
importació sys
provar:
# Definiu el número de port
si sys.argv[1:]:
port= int(sys.argv[1])
en cas contrari:
port= 5000
# Definiu l'adreça IP
adreça del servidor= ('127.0.0.1',port)
# Crea un objecte per gestionar les sol·licituds HTTP
Manipulador=http.servidor.SimpleHTTPRequestHandler
# Executeu el servidor web per sempre per gestionar les sol·licituds HTTP
ambsocketerver.TCPServer(('',port),Manipulador) comhttpd:
imprimir('El servidor web s'executa a http: // localhost:% s'% port)
httpd.servir_per sempre()
# S'ha aturat el servidor
excepte KeyboardInterrupt:
httpd.servidor_close()
imprimir('El servidor està aturat.')
Sortida
La següent sortida apareixerà després d'executar l'script anterior sense valor d'argument de línia d'ordres.
La següent sortida apareixerà si s'executa el fitxer HTML que s'ha creat al pas anterior des del servidor web.
Obriu el quadre de diàleg de configuració al menú Executa de l'editor PyCharm per establir el valor de l'argument de la línia d'ordres. El camp Paràmetres s’utilitza per establir l’argument de la línia d’ordres i 3000 s’estableix aquí com a valor de l’argument.
La següent sortida apareixerà si torneu a executar l'script després de definir el valor de l'argument.
Exemple 3: executeu el servidor web amb el fitxer HTML
Creeu un fitxer python amb el següent script per executar el servidor web definint el fitxer HTML per a l'URL base. El nom de l'amfitrió i el número de port s'han definit al començament de l'script. PythonServer class ha definit a l'script per mostrar el fitxer HTML al navegador quan el servidor web comença a executar-se.
# Importeu el mòdul de servidorimportacióhttp.servidor
# Definiu el nom de l'amfitrió
HOST= 'localhost'
# Definiu el número de port
PORT= 4000
# Definiu classe per mostrar la pàgina d'índex del servidor web
classePythonServer(http.servidor.SimpleHTTPRequestHandler):
deffer_ OBTENIR(jo mateix):
si jo mateix.Camí == '/':
jo mateix.Camí = 'testHTML.html'
tornarhttp.servidor.SimpleHTTPRequestHandler.fer_ OBTENIR(jo mateix)
# Declarar l'objecte de la classe
servidor web=http.servidor.Servidor HTTPS((HOST,PORT),PythonServer)
# Imprimiu l'URL del servidor web
imprimir('El servidor ha començat http: //% s:% s'%(HOST,PORT))
provar:
# Executeu el servidor web
servidor web.servir_per sempre()
excepte KeyboardInterrupt:
# Atureu el servidor web
servidor web.servidor_close()
imprimir('El servidor està aturat.')
Sortida
La següent sortida apareixerà executant l'script anterior.
La pàgina següent apareixerà al navegador si s’executa l’URL base del navegador del servidor web.
Conclusió
Les diferents maneres d'implementar servidors web mitjançant l'ús http. servidor El mòdul s'ha mostrat en aquest tutorial per ajudar els usuaris de Python a crear un servidor web senzill a Python.