With the foundation, that is, the data layer in place, we build on it when we develop the delivery layer. Between the delivery layer and the database layer, there is an additional layer that encapsulates the domain-specific knowledge (that is, it knows how to verify that the title of a new Topic
entity conforms to the requirements we set for it before it stores it in the database):
Each different layer in our application is implemented in its own file or files. It is easy to get confused, so before we delve further into these files, have a look at the following table. It lists the different files that together make up the wiki application and refers to the names of the layers introduced in Chapter 1, Choosing Your Tools (shown again in the previous image).
File |
Layer | |
---|---|---|
|
Content Delivery Framework |
Our main CherryPy application |
|
Object Relational Mapper |
The domain specific part; Imported by |
|
Object Relational Mapper |
The domain independent part; Imported by |
|
Structural Representation |
Used by |
|
Graphical User Interface |
Referred to in |
|
Graphical User Interface |
Referred to in |
We'll focus on the main CherryPy application first to get a feel for the behavior of the application.
3.12.123.189