Flask
Обновлено: 2024-03-12
2 мин
Содержание
Flask - это легковесный фреймворк для создания веб-приложений на языке Python. Он подходит как для небольших проектов, так и для крупных веб-приложений.
Flask не имеет встроенной базы данных или абстракции уровня модели, поэтому вам нужно будет выбрать библиотеку, которая лучше всего подходит для вашего проекта.
pip install flask
pip install flask_sqlalchemy
Пример CRUD-операций с использованием Flask:
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 Book(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(100))
author = db.Column(db.String(100))
@app.route('/books', methods=['GET'])
def get_all_books():
books = Book.query.all()
result = [{'id': book.id, 'title': book.title, 'author': book.author} for book in books]
return jsonify(result)
@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
result = {'id': book.id, 'title': book.title, 'author': book.author}
return jsonify(result)
@app.route('/books', methods=['POST'])
def create_book():
book = Book(title=request.json['title'], author=request.json['author'])
db.session.add(book)
db.session.commit()
result = {'id': book.id, 'title': book.title, 'author': book.author}
return jsonify(result), 201
@app.route('/books/<int:book_id>', methods=['PUT'])
def update_book(book_id):
book = Book.query.get(book_id)
if book is None:
return jsonify({'error': 'Book not found'}), 404
book.title = request.json['title']
book.author = request.json['author']
db.session.commit()
result = {'id': book.id, 'title': book.title, 'author': book.author}
return jsonify(result)
@app.route('/books/<int:book_id>', methods=['DELETE'])
def delete_book(book_id):
book = Book.query.get(book_id)
if book is None:
return jsonify({'error': 'Book not found'}), 404
db.session.delete(book)
db.session.commit()
return '', 204
Данный код использует Flask вместе с библиотекой SQLAlchemy для создания веб-приложения и взаимодействия с базой данных. Роуты приложения обрабатывают HTTP-запросы и возвращают соответствующий HTTP-ответ. В данном примере реализованы операции CRUD (Create, Read, Update, Delete) для модели Book.
Ресурсы: