📡 You're offline — showing cached content
New version available!
Quick Access
Tutorials Python from Zero Python Real Project

Python Real Project

8 min read
Build a Flask REST API for a resource like books. Define CRUD routes, validate input, return JSON with proper status codes, and write pytest tests with Flask's test client to verify each endpoint works correctly.

Build a REST API with Flask

from flask import Flask, jsonify, request, abort
from dataclasses import dataclass, asdict
import sqlite3

app = Flask(__name__)

@app.route("/users", methods=["GET"])
def get_users():
    conn = sqlite3.connect("db.sqlite")
    rows = conn.execute("SELECT id,name FROM users").fetchall()
    return jsonify([{"id":r[0],"name":r[1]} for r in rows])

@app.route("/users", methods=["POST"])
def create_user():
    data = request.json
    conn = sqlite3.connect("db.sqlite")
    cur = conn.execute("INSERT INTO users (name) VALUES (?)",(data["name"],))
    conn.commit()
    return jsonify({"id": cur.lastrowid}), 201

if __name__ == "__main__":
    app.run(debug=True)