Technical Architecture for Odoo 12

Alice Mercier

Hi everyone.

I am thinking of using Odoo 12 for my company.

I am searching documentation about technical architecture.

Do you know where I could find it ?

Thx a lot

2Semua Jawaban

Hi Alice,

You can find all the technical documentation at 
Sadly Odoo doesn't really have a diagram of the database model or anything. You can best figure this out by logging into an Odoo with the administrator user and checking the database structure under Settings > Technical > Database Structure > Models and  Settings > Technical > Database Structure > Fields or by connection to postgreSQL.
If you're looking for specific tutorials about technical subjects you can find 50+ tutorials on my blog at 

P.S: Just create a new question if you have a question about one specific subject. This one is a bit too broad to write out all details.


Best Answer

The technical architecture in a nutshell:

- Backend: Postgresql, Python 3 (Odoo 11.0 and up), XML
- Frontend: HTML, Javascript, QWeb (proprietary), XML

Odoo follows a MVC architecture:

Writing code with Python

The primary programming language of Odoo is Python. Like the other technologies underlying Odoo, the Python language is open source and runs on all the major contemporary operating systems. It is an extremely popular programming language, which makes it very easy to find resources to help you get started.

You can learn more about the Python programming language at

Following the Model-View-Controller design

Odoo is built upon a Model-View-Controller (MVC) architecture. One of the primary goals of this architecture is to separate the visual display of the information from the business rules and management of the underlying data. For example, if you need to change the way data is organized in the model, it is desirable not to have to make dramatic changes to how you view data. This is true for maintaining flexibility in viewing data. Today, it is common to have many different client applications sharing the same underlying data.

Designing models

The model is essentially the data that makes up your Odoo installation, which is stored in the PostgreSQL database. Odoo is unique in that database structures are typically defined by the Odoo modules at the time they are installed. The Odoo framework takes the model definitions and automatically creates the necessary table structures inside of the PostgreSQL database. Furthermore, a web interface in Odoo allows administrators to easily extend the Odoo data model in a variety of ways without having to modify the Odoo source code.

Rendering views

Each view in Odoo is defined in XML documents. The Odoo framework is responsible for rendering these view files in a web browser. Alternative views can be built to render Odoo functionality upon other platforms such as mobile devices.

Authoring controllers

The controller component of the architecture is where the business logic and workflow rules of the Odoo application are applied. The controller components in Odoo are written in Python code and stored as objects in Odoo modules.

Cited from the book "Working With Odoo 11" by Greg Moss.

You can find more details on the Odoo Documentation Page:


Our combined answers give a great insight. +1 for you too! :)

Ermin Trevisan

Likewise :-)