En aquesta entrada veurem com crear un petit servidor local en Python capaç de rebre text enviat des d’un navegador i retornar-lo immediatament al mateix navegador. És un exemple senzill però molt útil per entendre com funcionen les peticions HTTP, els formularis HTML i la comunicació amb un servidor local.
Formulari per enviar el text:
<!DOCTYPE html>
<html lang="ca">
<head>
<meta charset="UTF-8">
<title>Enviar text al servidor Python</title>
</head>
<body>
<h1>Enviar text al servidor local Python</h1>
<form action="http://127.0.0.1:5000/processa" method="post">
<label for="text">Text:</label>
<input type="text" id="text" name="text">
<button type="submit">Enviar</button>
</form>
</body>
</html>
1️⃣ Preparar l’entorn: Python i Flask
A Deepin 25 (o qualsevol distribució basada en Debian), pip no permet instal·lar paquets directament al sistema. Per això cal crear un entorn virtual.
Instal·lar venv (si cal)
bash
sudo apt install python3-venv
Crear l’entorn virtual
bash
python3 -m venv ~/flask-env
Activar-lo
bash
source ~/flask-env/bin/activate
El terminal hauria de mostrar:
Codi
((flask-env))
Instal·lar Flask dins l’entorn
bash
pip install flask
2️⃣ Crear el servidor local en Python
Creem un fitxer anomenat server.py amb (nano server.py) i enganxa:
python
from flask import Flask, request
app = Flask(__name__)
@app.route('/processa', methods=['POST'])
def processa():
text = request.form.get('text', '')
return f"<h1>Text rebut:</h1><p>{text}</p>"
@app.route('/')
def index():
return """
<form action="/processa" method="post">
<input type="text" name="text">
<button type="submit">Enviar</button>
</form>
"""
if __name__ == '__main__':
app.run(debug=True)
Aquest servidor fa dues coses:
- Serveix un formulari HTML senzill a
/ - Rep el text enviat a
/processai el retorna dins d’una pàgina HTML
3️⃣ Executar el servidor
Amb l’entorn virtual activat:
bash
python server.py
Si tot va bé, apareixerà:
Codi
* Running on http://127.0.0.1:5000
4️⃣ Enviar text des del navegador
Ara només cal obrir:
Codi
http://127.0.0.1:5000/
Escrius un text (per exemple, bon dia) i prems Enviar.
El navegador fa:
- Una petició POST a
/processa - Flask rep el text
- Flask genera una resposta HTML amb el text rebut
- El navegador mostra la resposta
5️⃣ Diagrama del flux
Codi
┌──────────────────────────┐
│ Navegador │
│ Usuari escriu "bon dia" │
└─────────────┬────────────┘
│ POST /processa
▼
┌──────────────────────────┐
│ Flask (Python) │
│ processa() rep el text │
└─────────────┬────────────┘
│ Genera HTML
▼
┌──────────────────────────┐
│ Navegador │
│ Mostra "Text rebut: │
│ bon dia" │
└──────────────────────────┘
6️⃣ Què hem aconseguit?
- Crear un entorn Python aïllat
- Instal·lar Flask correctament
- Crear un servidor local funcional
- Enviar text des d’un navegador
- Rebotar el text i mostrar-lo al navegador
- Validar el flux complet amb un exemple real
Aquest és el primer pas per integrar funcionalitats més avançades, com enviar el text a un sistema TTS (Piper) i reproduir-lo automàticament.
Si vols, puc preparar la segona part del post: 👉 “Enviar el text del navegador a Piper (Docker) i reproduir-lo com a veu Ona”
Només cal que m’ho diguis.