Python - DjangoDjangoDjango

Django 的Models介绍

2017-07-05  本文已影响65人  廖马儿

Django的Models是什么?
一个model对应数据库中的一张数据表;
Django中Models以类的形式表现;
包含了一些基本字段以及数据的一些行为。

ORM
对象关系映射(Object Relation Mapping)
实现了对象和数据库之间的映射。
隐藏了数据访问的细节,不需要编写SQL语句。


编写Models

步骤:
1)在应用根目录创建models.py,并引入models模块创建类(from django.db import models),集继承models.Model,该类即是一张数据表。
在类中需要创建一些字段。
字段就是类里面的属性(变量),写法:

attr=models.CharField(max_length=64)

eg:

class Article(models.Model):
    title = models.CharField(max_length=64, default="Title")
    content = models.TextField(null=True)

2)将python中的models.py中的类生成数据表:

方法一:

我们在manage.py同级目录使用命令:

python manage.py syncdb   

这个方法貌似后来取消掉了,看看是否有替换的方式。

方法二:

进入manage.py同级目录,执行:

python manage.py makemigrations app名(可选) # 制作数据迁移
python manage.py migrate   # 实际迁移动作,执行之后,Django会自动在app名称/migrations/目录下生成移植文件
图片.png

打开移植文件:


import ...

class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Article',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(default='Title', max_length=64)),
                ('content', models.TextField(null=True)),
            ],
        ),
        migrations.CreateModel(
            name='Test',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=20)),
            ],
        ),
    ]

默认sqlite3的数据库在项目根目录下db.sqlite3.

上一篇下一篇

猜你喜欢

热点阅读