Sobes.tech
Junior

What frameworks have you used with Flask?

sobes.tech AI

Answer from AI

I used the following frameworks and libraries with Flask to extend its functionality:

  • Flask-SQLAlchemy: for working with databases via SQLAlchemy ORM.
  • Flask-Migrate: for database migrations.
  • Flask-WTF: for creating and validating forms.
  • Flask-Login: for managing user sessions and authentication.
  • Flask-RESTful: for quickly creating RESTful APIs.
  • Flask-Marshmallow: for serialization and deserialization of data.
  • Flask-CORS: for handling CORS headers in browser requests.
  • Jinja2: the templating engine that comes with Flask.

Here's an example of using some of them:

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): # Schema for serialization/deserialization
    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() # Uncomment to create tables
    app.run(debug=True)