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框架)的更多相关文章

  1. django学习(三)

    1.单表操作和测试环境的准备 我们先对单表查询做一个总结和回顾,并进行进一步的学习和交流.我们在我们的应用的models.py文件下面书写user类.如下所示,然后用数据库迁移,在mysql数据库中生 ...

  2. Django(三) ORM 数据库操作

    大纲 一.DjangoORM 创建基本类型及生成数据库表结构 1.简介 2.创建数据库 表结构 二.Django ORM基本增删改查 1.表数据增删改查 2.表结构修改 三.Django ORM 字段 ...

  3. Django学习笔记之ORM多表操作

      创建模型 实例:我们来假定下面这些概念,字段和关系 作者模型:一个作者有姓名和年龄. 作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息.作者详情模型和作者模型之间是一对一的关 ...

  4. Django学习笔记之ORM字段和字段参数

    Object Relational Mapping(ORM) 一.ORM介绍 1. ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象 ...

  5. Django (学习第二部 ORM 模型层)

    Django对数据库的操作 Django的 ORM 简介 ORM操作 (增删改查) ORM操作数据库的增删改查 ORM创建表关系 ORM中常用字段及参数 数据库的查询优化 ORM中如何开启事务 ORM ...

  6. django学习之- Models笔记

    1:创建数据库表 #单表# app01_user 生成的表明为 tb1class User(models.Model): name = models.CharField(max_length=32,d ...

  7. sqlsugar freesql hisql 三个ORM框架性能测试对比

    hisql与目前比较流行的ORM框架性能测试对比 总体测试结果 插入记录数 hisql(耗时) sqlsugar(耗时) freesql(耗时) 5条 0.0107秒 0.0312秒 0.02675秒 ...

  8. Django学习(三) Django模型创建以及操作

    在Django中可以建立自己的模型Model,这里对应Java里的实体类,跟数据库表是对应的.其中用到了django.db模块中的models.如下图所示: mysite/news/models.py ...

  9. day17 Django学习三

    参考博客: http://www.cnblogs.com/wupeiqi/articles/5237704.html http://www.cnblogs.com/wupeiqi/articles/5 ...

随机推荐

  1. 每天一道Java题[10]

    题目 阐述创建线程最常用的两种方法及其对比. 解答 方法一:继承Thread类实现 步骤: 创建Thread类的子类,如MyThread. 重写Thread类的run()方法. 实例化MyThread ...

  2. The dplyr package has been updated with new data manipulation commands for filters, joins and set operations.(转)

    dplyr 0.4.0 January 9, 2015 in Uncategorized I’m very pleased to announce that dplyr 0.4.0 is now av ...

  3. 你知道“移动端车牌识别”可以嵌入到PDA中应用吗?

    一.移动端车牌识别产品描述 移动端车牌识别软件是基于移动平台的OCR识别应用程序,支持Android/IOS等多种主流移动操作系统.该产品只需通过智能手机或Pad的摄像头对准车牌,无需拍照,实现自动采 ...

  4. ssh框架整合之登录以及增删改查

    1.首先阐述一下我用得开发工具,myeclipse2017+oracle,所以我的基本配置步骤可能不一样,下面我用几张图来详解我的开发步骤. ---1先配置structs (Target 选择apac ...

  5. java基础(十五章)

    一.字符串类String 1.String是一个类,位于java.lang包中 2.创建一个字符串对象的2种方式: String 变量名="值"; String 对象名=new S ...

  6. Python 的枚举 Enum

    枚举是常用的功能,看看Python的枚举. from enum import Enum Month = Enum('Month', ('Jan', 'Feb', 'Mar', 'Apr', 'May' ...

  7. js基础回顾-数据类型和typeof怎么用

    js的基本数据类型有六种,undefined.null.number.string.boolean.object. 未定义        空      数字        字符串    布尔     ...

  8. DOM事件类型总结大全

    unload:事件在用户退出页面时发生 window.onload = function(){ return "页面关闭!"; }; onblur:失去焦点发生变化 window. ...

  9. 格式化输出和printf命令

    GNU版本的printf命令用来格式化输出,效果类似与C语言的printf函数.2.x以上版本的Bash内建的printf命令和e/usr/bin下的printf命令使用方法一样. 例子:$print ...

  10. Google云平台技术架构

    Google Cloud  设计原理: 1.分布式文件系统: Google Distributed File System(GSF)   为了满足Google迅速增长的数据处理需求,我们设计并实现了G ...