Defining Models in Python

As we discussed earlier in Chapter 1, Introduction to Django and Getting Started, the M in MTV stands for Model. A Django model is a description of the data in your database, represented as Python code. It's your data layout-the equivalent of your SQL CREATE TABLE statements-except it's in Python instead of SQL, and it includes more than just database column definitions.

Django uses a model to execute SQL code behind the scenes and return convenient Python data structures representing the rows in your database tables. Django also uses models to represent higher-level concepts that SQL can't necessarily handle.

If you're familiar with databases, your immediate thought might be, "Isn't it redundant to define data models in ...

Get Mastering Django: Core now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.