Назад к вопросам
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)