您的位置:首页 > 编程语言 > Go语言

django-2 models

2017-09-11 17:49 267 查看
一个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>


  




 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: