models.py

class Company(models.Model):
    name = models.CharField(
        verbose_name='会社名', max_length=20)
    
class Person(models.Model):
    name = models.CharField(
        verbose_name='氏名', max_length=20)
    age = models.PositiveIntegerField(
        verbose_name='年齢', blank=True, default='')
    birth = models.DateTimeField(
        null=True, blank=True, verbose_name='誕生日', default=None)
    company = models.ForeignKey(
        Company, null=True, on_delete=models.CASCADE, related_name='person')
models.pyは、データベースにテーブルを作成したりするのに使用されます。
class テーブル名(model.Model):
定義するカラム名


の形式でテーブルを作成することができます。
models.CharFieldは文字列
models.PositiveIntegerFieldは正の整数
models.DateTimeFieldは日時
models.ForeignKeyは多側のテーブルからの他の1側のテーブルへのへのリレーション
となっています。
また、verbose_nameはadminページに表示されるときの列名となっています。

上の例では、Companyテーブルは
上限20文字の文字列のnameフィールド

Personテーブルは
上限20文字の文字列のフィールドnameフィールド
正の整数のageフィールド(未記入時は'')
日時型のbirthフィールド(未記入時はNone)
Companyテーブルへのリレーションのcompanyフィールド
となっています。

リレーションは
models.Foreigkeyは多対1の多側からのリレーション
models.OneToOneFieldは1対1でのリレーション
となっています。
また、1側から多側のデータを取得したいときなどはrelated_nameで指定されている文字列を使用してさかのぼります。

models.py内でクラスを定義後プロジェクトのルートディレクトリで、
python manage.py makemigrations
python manage.py migrate

と入力することでテーブルが作成されます。