Loading page
request.form → validation → requests.post → flash a message.
import requests
from flask import Flask, flash, redirect, render_template, request
app = Flask(__name__)
app.secret_key = "change-me"
@app.post("/contact")
def contact():
payload = {
"name": request.form.get("name", "").strip(),
"email": request.form.get("email", "").strip(),
"message": request.form.get("message", "").strip(),
}
if not payload["email"] or not payload["message"]:
flash("Email and message are required.")
return redirect("/contact")
response = requests.post(
"https://formivo.faizyab.me/api/f/YOUR_FORM_ID",
json=payload,
headers={"Accept": "application/json"},
timeout=10,
)
flash("Thanks — your message was sent." if response.status_code == 201 else "Could not send.")
return redirect("/contact")201 on success. Redirect back with a flash message, never render the raw response.
| Symptom | Fix |
|---|---|
| 413 in front of Flask | Raise MAX_CONTENT_LENGTH deliberately, not blindly. |
| No flash message | A secret_key must be set for sessions. |