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':'开花花🌺','article':article111})

 

7.2 在templates/blog/index.html中写:效果就出来了,需要注意的是此处写的是   表名.字段名

<h1>{{ article.title }}</h1>
<h1>{{ article.content }}</h1>
<h1>{{ article.id }}</h1>

  

 


 

 

 

posted @ 2017-09-11 17:49  vivi~  阅读(231)  评论(0编辑  收藏  举报