Django学习---Models(ORM框架)

Posted

tags:

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

1) Django 中Models是与数据库相关的,与数据库相关的代码一般写在 models.py中,Django 支持 sqlite3, mysql, PostgreSQL等数据库,只需要在settings.py中配置即可,不用更改models.py中的代码,丰富的API极大的方便了使用。

2) Model介绍:

通常一个model对应数据库中的一张数据表

Django中的Models以类的形式表示

它包含了一些基本字段和数据的一些行为

Django中以创建类的形式来创建数据表

编写代码对数据库的操作只需要对类和类的对象的操作,不需要SQL语句(ORM)

3) ORM

对象关系映射(Object Relation Mapping)

实现对象和数据库的映射

隐藏数据访问的细节,不需要编写SQL语句

Django将和数据库交互的语句封装起来了,实现了ORM框架,给开发带来便利

4) 创建Models

新建类,继承自models.Model,该类即是一张数据表

创建字段:字段即类的属性(变量) 如:attr=models.CharField(max_length=30)

打开blog/models.py文件,修改其中的代码如下:

from django.db import models

# Create your models here.
class Article(models.Model):
    title = models.CharField(max_length=32,default=‘my title)
    content = models.TextField(null=True)

5) 生成数据表

命令行进入manage.py同级目录

执行  python manage.py makemigrations app名(可选,若不加app名,则对该项目下所有app生成移植文件)

再执行 python manage.py migrate

Django就会自动在app/migrations/下生成移植文件,可打开0001_initial.py查看

执行 python manage.py sqlmigrate 应用名 文件名  (此处应用名是app,文件名是0001)可查看SQL语句(Djngo会自动生成主键id int型 不为空 自增的)

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

6)查看并编辑db.sqlite3

使用SQLite Expert Personal打开db.sqlite3文件,点击blog_article数据表(blog前缀是默认加上的)点击+号添加数据后点击√保存即可

技术分享

7)页面呈现数据

后台步骤:

views.py中import models

article = models.Article.objects.get(pk=1)  Article是自己设定的类 pk主键为1 article是模型的实例

render(request, htmlURL, { ‘article‘ : article })传递给前端

 

views.py如下:

from django.shortcuts import render
from . import models

# Create your views here.

def index(request):
    article = models.Article.objects.get(pk=1)  # article是定义的一个模型的实例,Article是自己设定的类,pk主键为1(指插入的那条记录)                 
    return render(request,blog/index.html,{article:article})

前端步骤:

使用对象的“ . ”操作

index.html如下:

<!DOCTYPE html>  
<html>  
<head>  
    <title>第一个Template</title>  
</head>  
<body>  
<h1>{{article.title}}</h1>
<h2>{{article.content}}</h2>  
</body>  
</html> 

 

最后启动查看效果

 

以上是关于Django学习---Models(ORM框架)的主要内容,如果未能解决你的问题,请参考以下文章

django之Models和ORM

Django框架——模型(models)层之ORM查询

Django框架之ORM的相关操作

python-django的ORM

Django学习手册 - ORM数据类型

Django学习手册 - ORM 外键