How to get cursor in SQLAlchemy

Question:

I am newbie in Python Flask. In my project we are creating db object using below code.

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

I want to get cursor object from db. Can someone please help me on it.
I know using connection object we can get cursor. But can we get cursor from db object which is created by above way? Thanks.

Asked By: user3462649

||

Answers:

You don’t have a cursor in Flask SQLAlchemy because it’s an ORM. Methods exist to perform actions on the database directly, unlike packages like SQLite. Check the documentation for more info on these.

To execute SQL queries directly, you’d have to run them through the terminal directly through whichever RDBMS you’re using (MySQL, PostgreSQL, etc.)

Answered By: Mangohero1

Finally got answer from Flask documentation, we can get cursor from db object using,

from sqlalchemy import create_engine
engine = create_engine('your_connection_string')
connection = engine.raw_connection()
cursor = connection.cursor()
Answered By: user3462649

It’s ok in this way.

db = SQLAlchemy(app)
session = db.session()
cursor = session.execute(sql).cursor
Answered By: Sucas Venior

create cursor from sqlalchemy orm session

  1. from sqlalchemy.orm import sessionmaker
  2. engine=create_engine(url)
  3. session=sessionmaker(bind= engine)()
  4. curs=session.connection().connection.cursor()
Answered By: abdelrahman