Назад к вопросам
Junior
61
questionbank

Какие фреймворки вы использовали с Flask?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Я использовал следующие фреймворки и библиотеки с Flask для расширения его функциональности:

  • Flask-SQLAlchemy: для работы с базами данных через ORM SQLAlchemy.
  • Flask-Migrate: для миграций базы данных.
  • Flask-WTF: для создания и валидации форм.
  • Flask-Login: для управления сессиями пользователей и аутентификацией.
  • Flask-RESTful: для быстрого создания RESTful API.
  • Flask-Marshmallow: для сериализации и десериализации данных.
  • Flask-CORS: для обработки CORS заголовков при запросах из браузера.
  • Jinja2: шаблонизатор, который идет в комплекте с Flask.

Вот пример использования некоторых из них:

from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy
from flask_marshmallow import Marshmallow

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'
db = SQLAlchemy(app)
ma = Marshmallow(app)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True, nullable=False)

    def __repr__(self):
        return '<User %r>' % self.username

class UserSchema(ma.Schema): # Схема для сериализации/десериализации
    class Meta:
        fields = ('id', 'username')

user_schema = UserSchema()
users_schema = UserSchema(many=True)

@app.route('/user', methods=['POST'])
def add_user():
    username = request.json['username']
    new_user = User(username=username)
    db.session.add(new_user)
    db.session.commit()
    return user_schema.jsonify(new_user)

@app.route('/users', methods=['GET'])
def get_users():
    all_users = User.query.all()
    return users_schema.jsonify(all_users)

if __name__ == '__main__':
    # db.create_all() # Раскомментировать для создания таблиц
    app.run(debug=True)