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中的TransactionManagementError