Summary
In this chapter, we learned about some basic database concepts and their importance in application development. We used a free database visualization tool, DB Browser for SQLite, to understand what database tables and fields are, how records are stored in a database, and further performed some basic CRUD operations on the database using simple SQL queries.
We then learned how Django provides a valuable abstraction layer called ORM that helps us interact seamlessly with relational databases using simple Python code, without having to compose SQL commands. As a part of ORM, we learned about Django models, migrations, and how they help propagate the changes to the Django models in the database.
We shored up our knowledge of databases by learning about database relationships, and their key types, in relational databases. We also worked with the Django shell, where we used Python code to perform the same CRUD queries we performed earlier using SQL. Later, we learned how to retrieve our data in a more refined manner using pattern matching and field lookups. As we learned these concepts, we made considerable progress on our Bookr application as well. We created models for our reviews
app and gained all the skills we need to interact with the data stored inside the app's database. In the next chapter, we will learn how to create Django views, URL routing, and templates.