Files
html/generated/wevia-code---API-REST-avec-Flask-et-SQLAlchemy-20260421-134609-a65927.py
opus 81a027dd87
Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled
auto-sync via WEVIA git_sync_all intent 2026-04-21T15:47:14+02:00
2026-04-21 15:47:14 +02:00

76 lines
2.6 KiB
Python

from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///example.db'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100), nullable=False)
email = db.Column(db.String(100), nullable=False, unique=True)
def to_dict(self):
return {'id': self.id, 'name': self.name, 'email': self.email}
class Book(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(100), nullable=False)
author = db.Column(db.String(100), nullable=False)
def to_dict(self):
return {'id': self.id, 'title': self.title, 'author': self.author}
@app.route('/users', methods=['GET'])
def get_users():
users = User.query.all()
return jsonify([user.to_dict() for user in users])
@app.route('/users', methods=['POST'])
def create_user():
data = request.json
user = User(name=data['name'], email=data['email'])
db.session.add(user)
db.session.commit()
return jsonify(user.to_dict()), 201
@app.route('/books', methods=['GET'])
def get_books():
books = Book.query.all()
return jsonify([book.to_dict() for book in books])
@app.route('/books', methods=['POST'])
def create_book():
data = request.json
book = Book(title=data['title'], author=data['author'])
db.session.add(book)
db.session.commit()
return jsonify(book.to_dict()), 201
@app.route('/users/<int:user_id>', methods=['GET'])
def get_user(user_id):
user = User.query.get(user_id)
if user is None:
return jsonify({'error': 'User not found'}), 404
return jsonify(user.to_dict())
@app.route('/books/<int:book_id>', methods=['GET'])
def get_book(book_id):
book = Book.query.get(book_id)
if book is None:
return jsonify({'error': 'Book not found'}), 404
return jsonify(book.to_dict())
if __name__ == '__main__':
with app.app_context():
db.create_all()
app.run(debug=True)
Ce code crée une API REST avec Flask et SQLAlchemy pour gérer des utilisateurs et des livres. Les routes disponibles sont :
- `/users` : récupérer tous les utilisateurs, créer un nouveau utilisateur
- `/books` : récupérer tous les livres, créer un nouveau livre
- `/users/<int:user_id>` : récupérer un utilisateur par ID
- `/books/<int:book_id>` : récupérer un livre par ID
Les données sont stockées dans une base de données SQLite. Les utilisateurs et les livres sont représentés par des objets Python qui peuvent être convertis en dictionnaires pour être envoyés dans les réponses HTTP.