Nowadays many technologies exist to store information for a Software Application. In a very high level of categorization of these technologies are SQL and NoSQL Databases.

SQL vs NoSQL

SQL stands for Structured Query Language and takes the domain of a set of technologies used to store data and its relationships in a structured way. 2 main components are at least necessary to SQL technologies, a language to define the structure of the data, and a language to query the data.

Nowadays all SQL database must be also ACID Compliant, this means the offer the warranty of Atomic Operations, Data Consistency, Data Isolation, and Operation Durability or Persistency.

In the other hand, NoSQL technologies are the other group that does not follow these principles. Many technologies exist that do not follow the SQL principles in many different ways, but the majority are grouped into 2 subcategories: Document Based Databases and Key-Value Stores, depending on how they organize the information that they store.

Characteristics of SQL and Non SQL databases to notice:

Atomicity: The quality of make no divisibles operations

Transactions: The quality of executing multiple atomic operations as one

Schema: The presence or lack of structure on the data been handled

Data Types: The quality of force or not data types

Persistency: The quality of fully or partially persist the data that it stores

Replication: The capacity and difficulty of growing

API: The type of interface that it has to communicate with applications

Connecting a NoSQL Database with Flask

Flask Framework

Flask is a micro web framework written in Python. It is classified as a microframework because it does not require particular tools or libraries (except for some basics standard libraries such as bottom.py). It has no database abstraction layer, form validation, or any other components where pre-existing third-party libraries provide common functions. However, Flask supports extensions that can add application features as if they were implemented in Flask itself. Extensions exist for object-relational mappers, form validation, upload handling, various open authentication technologies and several common framework related tools. Extensions are updated far more regularly than the core Flask program.[5] Flask is commonly used with MongoDB, which gives it more control over databases and history.

Mongo DB

MongoDB is a cross-platform document-oriented database program. Classified as a NoSQL database program, MongoDB uses JSON-like documents with schemata. MongoDB is developed by MongoDB Inc. and licensed under the Server Side Public License (SSPL).