Models

For the Arena application, a script called models.py contains the models that will be used for the application. As described earlier, these models are Python classes that contain database column definitions and can have internal functions for processing data. Our simplified models contain only data column definitions using SQLAlchemy and GeoAlchemy2 classes.

To connect to the database, the app object is imported. This makes the application configuration variables, including app.config['SQLALCHEMY_DATABASE_URI'] which stores the database connection string, available to the SQLAlchemy create_engine function:

from application import app
# The database connections and session management are managed with SQLAlchemy functions
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String, ForeignKey, Float
from sqlalchemy.orm import sessionmaker
from sqlalchemy.orm import relationship
from geoalchemy2 import Geometry
engine = create_engine(app.config['SQLALCHEMY_DATABASE_URI'])
Session = sessionmaker(bind=engine)
session = Session()
Base = declarative_base()

For the sake of brevity, I've skipped detailing the model class definitions here as they were explained previously. Look for them inside the arenaapp/application folder's models.py script.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset