summaryrefslogtreecommitdiff
path: root/quoins/model/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'quoins/model/__init__.py')
-rw-r--r--quoins/model/__init__.py62
1 files changed, 62 insertions, 0 deletions
diff --git a/quoins/model/__init__.py b/quoins/model/__init__.py
new file mode 100644
index 0000000..8f551c8
--- /dev/null
+++ b/quoins/model/__init__.py
@@ -0,0 +1,62 @@
1# -*- coding: utf-8 -*-
2"""The application's model objects"""
3
4from zope.sqlalchemy import ZopeTransactionExtension
5from sqlalchemy.orm import scoped_session, sessionmaker
6#from sqlalchemy import MetaData
7from sqlalchemy.ext.declarative import declarative_base
8
9# Global session manager: DBSession() returns the Thread-local
10# session object appropriate for the current web request.
11maker = sessionmaker(autoflush=True, autocommit=False,
12 extension=ZopeTransactionExtension())
13DBSession = scoped_session(maker)
14
15# Base class for all of our model classes: By default, the data model is
16# defined with SQLAlchemy's declarative extension, but if you need more
17# control, you can switch to the traditional method.
18DeclarativeBase = declarative_base()
19
20# There are two convenient ways for you to spare some typing.
21# You can have a query property on all your model classes by doing this:
22# DeclarativeBase.query = DBSession.query_property()
23# Or you can use a session-aware mapper as it was used in TurboGears 1:
24# DeclarativeBase = declarative_base(mapper=DBSession.mapper)
25
26# Global metadata.
27# The default metadata is the one from the declarative base.
28metadata = DeclarativeBase.metadata
29
30# If you have multiple databases with overlapping table names, you'll need a
31# metadata for each database. Feel free to rename 'metadata2'.
32#metadata2 = MetaData()
33
34#####
35# Generally you will not want to define your table's mappers, and data objects
36# here in __init__ but will want to create modules them in the model directory
37# and import them at the bottom of this file.
38#
39######
40
41def init_model(engine):
42 """Call me before using any of the tables or classes in the model."""
43
44 DBSession.configure(bind=engine)
45 # If you are using reflection to introspect your database and create
46 # table objects for you, your tables must be defined and mapped inside
47 # the init_model function, so that the engine is available if you
48 # use the model outside tg2, you need to make sure this is called before
49 # you use the model.
50
51 #
52 # See the following example:
53
54 #global t_reflected
55
56 #t_reflected = Table("Reflected", metadata,
57 # autoload=True, autoload_with=engine)
58
59 #mapper(Reflected, t_reflected)
60
61# Import your model modules here.
62from quoins.model.blog import *