Flask SQLAlchemy


1. Basic Model Definition:

from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()

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

2. Relationships (One-to-Many):

class Order(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    user = db.relationship('User', backref=db.backref('orders', lazy=True))

3. Relationships (Many-to-Many):

users_tags = db.Table('users_tags',
    db.Column('user_id', db.Integer, db.ForeignKey('user.id')),
    db.Column('tag_id', db.Integer, db.ForeignKey('tag.id'))
)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    tags = db.relationship('Tag', secondary=users_tags, backref=db.backref('users', lazy=True))

class Tag(db.Model):
    id = db.Column(db.Integer, primary_key=True)

4. Querying with Filters:

5. Querying with Ordering:

6. Querying with Pagination:

7. Limiting Query Results:

8. Deleting Records:

9. Updating Records:

10. Creating a Foreign Key:

11. Adding a Timestamp:

12. Using a Model Mixin:

13. Creating a Composite Primary Key:

14. Defining Computed Columns:

15. Using a Model as a Mixin:

16. Using a Model as a Data Transfer Object (DTO):

17. Serializing Models to JSON:

18. Deserializing JSON to Models:

19. Using a Database URL:

20. Connecting to a Database:

21. Creating Database Tables:

22. Dropping Database Tables:

23. Using a Custom Model Manager:

24. Customizing Model Event Handling:

25. Using a Database Proxy:

26. Using a Database Engine:

27. Using a Session Factory:

28. Using a Scoped Session:

29. Using a Transaction:

30. Using a Rollback:

31. Using a Commit:

32. Using a Flush:

33. Using a Query:

34. Using a Filter:

35. Using an Order By:

36. Using a Limit: