Logo

Developer learning path

Python

Database Access with ORM (ObjectRelational Mapping) in Python

Database Access with ORM (ObjectRelational Mapping)

41

#description

Object-Relational Mapping (ORM) is a programming technique that maps data from a relational database into a set of objects that are used within an application. An ORM makes it easier for developers to interact with the database by abstracting the low-level SQL queries and operations and instead providing a high-level interface for creating, reading, updating, and deleting objects within the database.

In Python, there are several popular ORMs including SQLAlchemy and Django ORM. These ORMs provide developers with a simple and intuitive way to interact with a database using Python code. The basic idea behind using an ORM is to define classes that map to database tables, and to use these classes to perform database operations.

For example, let's say we have a table called "users" in our database with columns for "id", "name", and "email". With an ORM, we would define a class called "User" which would map to this table.

In SQLAlchemy, the User class would look something like this:

                    
from sqlalchemy import Column, Integer, String

class User(Base):
    __tablename__ = 'users'

    id = Column(Integer, primary_key=True)
    name = Column(String)
    email = Column(String)
                  

We can now use this class to perform operations on the "users" table.

For example, to create a new user record in the database, we would do something like this:

                    
new_user = User(name='John Doe', email='john.doe@email.com')
session.add(new_user)
session.commit()
                  

Here, we create a new instance of the User class and pass in the name and email parameters. We then add this new instance to the session (which manages transactions with the database) and commit the transaction.

ORMs make it easy to write Python code that interacts with a database without having to worry about the low-level details of SQL queries and operations. They simplify database access and can make code more maintainable and easier to read.

March 25, 2023

If you don't quite understand a paragraph in the lecture, just click on it and you can ask questions about it.

If you don't understand the whole question, click on the buttons below to get a new version of the explanation, practical examples, or to critique the question itself.