django-2 models

Posted vivi~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django-2 models相关的知识,希望对你有一定的参考价值。

一个model 对应DB的一张表

 

 

models 以类的形式表现: 一些字段、数据的一些行为

对类、类的对象 操作,无需写SQL = >  object relation mapping  ORM 对象关系映射

 

1. 在应用app:blog 的根目录下 ,有models.py, django自动生成的

  在其中创建类(一张数据表),继承 models.Model

  在类中创建字段,即属性

class Article(models.Model):
    title = models.CharField(max_length=32,default=\'Title\')
    content = models.TextField(null=True)

  

2. 将类映射成表,在项目myblog 的manage.py 同级目录下执行:

不加应用名字,则默认该项目下所有应用都生成该表

python manage.py makemigrations blog  

 

3. 执行迁移动作,移植了一堆东西,其中包括settings.py文件中自带的应用

python manage.py migrate

 

4. 查看migrations文件夹下果真有个0001_initial.py ,其中有创建model的内容:

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=32)),
                (\'content\', models.TextField(null=True)),
            ],
        ),
    ]

 

5. 查看SQL,在manage.py同级目录执行:要加上app 名字 和 文件id

 python manage.py sqlmigrate blog 0001

 

 6. 查看根目录下db.sqlite3中已经有这个表及对应字段了,添加一条数据

7. 取出:

7.1 在应用blog 的 views.py 中 :   primerykey =1  , 也可以title 其他字段搜索

from . import models
artile = models.Article.objects.get(pk=1)
def index(request):
    article111 = models.Article.objects.get(pk=1)
    return render(request,\'blog/index.html\',{\'hello\':\'开花花

以上是关于django-2 models的主要内容,如果未能解决你的问题,请参考以下文章

Django +2 ImportError:无法导入模型

Django 2 个字段之一不能为空

进行迁移时Django中的TransactionManagementError

Django 2.0.3 使用笔记

[oldboy-django][2深入django]老师管理--查看,添加,编辑

Django 2.0 与 Django1.0在内部方法上的差异