Nosaltres hem fet un formulari com si fos per registrar-se a la lan party.

Ho tenim configurat perquè no es pugui deixar cap dada essencial buida i que per exemple al Gmail hagis de posar algun text en format mail.


Per aconseguir això es fa amb aquesta part del codi del nostre programa:
<form method="POST">
<input type="text" name="nom" placeholder="Nom" required>
<input type="text" name="cognoms" placeholder="Cognoms" required>
<input type="text" name="nickname" placeholder="Nickname" required>
<input type="email" name="email" placeholder="Email" required>
<input type="tel" name="telefon" placeholder="Telèfon" required>
<input type="text" name="dni" placeholder="DNI / NIE" required>
<div class="days-group">
<label><input type="checkbox" name="dies" value="10"> Dia 10</label>
<label><input type="checkbox" name="dies" value="11"> Dia 11</label>
<label><input type="checkbox" name="dies" value="12"> Dia 12</label>
</div>
<textarea name="intolerancies" rows="2" placeholder="Intoleràncies o al·lèrgies..."></textarea>
<button type="submit">Finalitzar Registre</button>
</form>El type a cada input fa que no deixi continuar fins que no s’escrigui en aquell format.
Un altre exemple que tenim al nostre formulari és a l’hora d’entrar al panell d’administració:

per què al camp de posar la contrasenya surti en ocult es fa posant password al type
<form method="POST">
<input type="text" name="user" placeholder="Usuari" required>
<input type="password" name="pass" placeholder="Contrasenya" required>
<button type="submit">ENTRAR</button>
</form>Per connectar i configurar la base de dades amb el formulari:
# --- Configuració de la Base de Dades ---
def init_db():
with sqlite3.connect(DB_NAME) as conn:
conn.execute('''
CREATE TABLE IF NOT EXISTS assistents (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nom TEXT NOT NULL,
cognoms TEXT NOT NULL,
nickname TEXT NOT NULL,
email TEXT NOT NULL,
telefon TEXT NOT NULL,
dni TEXT NOT NULL,
dies TEXT NOT NULL,
intolerancies TEXT
)
''')