How to insert current time in sqlalchemy and python

Viewed 69
import sqlalchemy
from sqlalchemy.ext.declarative import declarative_base

# Define the MariaDB engine using MariaDB Connector/Python

engine = sqlalchemy.create_engine("mariadb+mariadbconnector://root:1234@127.0.0.1:3306/project")

Base = declarative_base()

class Visitors(Base):
    __tablename__ = "visits"
    datetime=sqlalchemy.column(sqlalchemy.datetime)
    picture=sqlalchemy.column(sqlalchemy.String(length=200))
    name=sqlalchemy.column(sqlalchemy.String(length=50))
    
Base.metadata.create_all(engine)

Session = sqlalchemy.orm.sessionmaker()
Session.configure(bind=engine)
Session = Session()

newVisitor = Visitors(datetime=datetime, picture="example.jpg",name="chrome")
Session.add(newVisitor)
Session.commit()

output

Traceback (most recent call last): File "c:/projectF/database.py", line 10, in class Visitors(Base): File "c:/projectF/database.py", line 12, in Visitors datetime=sqlalchemy.column(sqlalchemy.datetime) AttributeError: module 'sqlalchemy' has no attribute 'datetime'

2 Answers

You defined the column type incorrectly, the DateTime type is found under sqlalchemy.types.

from datetime import datetime
from sqlalchemy.types import DateTime

class Visitors(Base):
    __tablename__ = "visits"
    datetime = sqlalchemy.column(DateTime)

newVisitor = Visitors(datetime=datetime.now(), picture="example.jpg", name="chrome")
from sqlalchemy import func

class Visitors(Base):
    __tablename__ = "visits"
    datetime = sqlalchemy.column(DateTime,server_default=func.now())
Related