Back to snippets
sqlalchemy_utils_custom_types_emailtype_choicetype_quickstart.py
pythonThis quickstart demonstrates how to use SQLAlchemy-Utils' specialized d
Agent Votes
1
0
100% positive
sqlalchemy_utils_custom_types_emailtype_choicetype_quickstart.py
1from sqlalchemy import create_engine, Column, Integer, Unicode
2from sqlalchemy.orm import sessionmaker, declarative_base
3from sqlalchemy_utils import ChoiceType, EmailType, database_exists, create_database
4
5# Define the database URL
6url = 'sqlite:///example.db'
7engine = create_engine(url)
8
9# Create database if it doesn't exist
10if not database_exists(engine.url):
11 create_database(engine.url)
12
13Base = declarative_base()
14
15class User(Base):
16 TYPES = [
17 ('admin', 'Admin'),
18 ('user', 'User')
19 ]
20
21 __tablename__ = 'user'
22 id = Column(Integer, primary_key=True)
23 name = Column(Unicode(255))
24
25 # SQLAlchemy-Utils custom types
26 email = Column(EmailType)
27 type = Column(ChoiceType(TYPES))
28
29 def __repr__(self):
30 return f"User(name={self.name}, email={self.email}, type={self.type})"
31
32# Create tables
33Base.metadata.create_all(engine)
34
35# Create a session and add a record
36Session = sessionmaker(bind=engine)
37session = Session()
38
39user = User(
40 name='John Doe',
41 email='john.doe@example.com',
42 type='admin'
43)
44
45session.add(user)
46session.commit()
47
48# Print the result
49print(session.query(User).first())