Django中ORM的基本使用教程


Posted in Python onDecember 22, 2020

前言

Django框架功能齐全自带数据库操作功能,本文主要介绍Django的ORM框架

到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞:

  • 创建数据库,设计表结构和字段
  • 使用 MySQLdb 来连接数据库,并编写数据访问层代码
  • 业务逻辑层去调用数据访问层执行数据库操作

ORM

orm(object-relation-mapping)对象关系映射,即用对象来表示关系数据库中的表:

类 --> 表,

对象-->一行数据

对象的属性-->一行属性的一个字段

比如说一个用户信息表:

class User:
 def __init__(self,name,age):
  self.name = name
  self.age = age

这样我们就定义了一个类,有name和age属性,之后我们每创建一个对象都有一个自己的name和age值,就好比我们创建了一个表格,有name和age字段,每一行数据都有自己的name和age。

那么我们怎么在Django中应用呢,首先,Django使用了MVT模型,即:模型、视图、模板,相较于MVC(模型-视图-控制器)而言,其中MVT中的T(templates)和MVC中的V(views)都表示一种可以看得见的一种数据渲染图,而MVT(views)和MVC中的C(controls)都表示一种逻辑,即当浏览器请求的时候服务器该怎么返回数据,最后,MVT中的M(models)和MVC中的M(models)都表示数据存储部分,即数据库。

于是,如果我们需要创建表格就要创建类,就要在modles.py中创建,如下:

from django.db import models

# Create your models here.


class User(models.Model):
 username = models.CharField(max_length=32)
 password = models.CharField(max_length=32)

其中CharFiled相当于数据库中的varchar,与之对应的还要Decimal、Datatime等等。

接下来就是我们要把数据存储在哪个数据库了,好在Django自己生成了一个 db.sqlite3 文件,那么接下来我们就要去setting.py文件中去配置数据库,如下:

Django中ORM的基本使用教程

然后就需要打开我们的sqlite数据库文件看看了,这里,我们如果使用pycharm,可以按如下操作:

点击侧边那里

Django中ORM的基本使用教程

选择类型

Django中ORM的基本使用教程

点击图标

Django中ORM的基本使用教程

找到sqlite3文件然后应用。

Django中ORM的基本使用教程

此时发现:

Django中ORM的基本使用教程

中并没有user表,这时,我们需要再执行两条终端命令:

打开终端

Django中ORM的基本使用教程

第一条命令: python manage.py makemigration
第二条命令: python manage.py migrate

然后刷新:

Django中ORM的基本使用教程

就可以看到表格了,双击就可以进行编辑啦!!!

到此这篇关于Django中ORM基本使用的文章就介绍到这了,更多相关Django中ORM使用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python中用PIL库批量给图片加上序号的教程
May 06 Python
Python中asyncore异步模块的用法及实现httpclient的实例
Jun 28 Python
详解python 字符串和日期之间转换 StringAndDate
May 04 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
Sep 25 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
Dec 18 Python
tensorboard实现同时显示训练曲线和测试曲线
Jan 21 Python
From CSV to SQLite3 by python 导入csv到sqlite实例
Feb 14 Python
python发qq消息轰炸虐狗好友思路详解(完整代码)
Feb 15 Python
python代码中怎么换行
Jun 17 Python
keras中epoch,batch,loss,val_loss用法说明
Jul 02 Python
浅谈matplotlib 绘制梯度下降求解过程
Jul 12 Python
python用Tkinter做自己的中文代码编辑器
Sep 07 Python
python通用数据库操作工具 pydbclib的使用简介
Dec 21 #Python
Python 多进程原理及实现
Dec 21 #Python
python-图片流传输的思路及示例(url转换二维码)
Dec 21 #Python
python 用pandas实现数据透视表功能
Dec 21 #Python
python 生成正态分布数据,并绘图和解析
Dec 21 #Python
python statsmodel的使用
Dec 21 #Python
Python 实现集合Set的示例
Dec 21 #Python
You might like
怎样辨别一杯好咖啡
2021/03/03 新手入门
php+jQuery递归调用POST循环请求示例
2016/10/14 PHP
Expandable "Detail" Table Rows
2007/08/29 Javascript
js 函数的副作用分析
2011/08/23 Javascript
javascript同页面多次调用弹出层具体实例代码
2013/08/16 Javascript
JavaScript中的prototype和constructor简明总结
2014/04/05 Javascript
javascript实现的固定位置悬浮窗口实例
2015/04/30 Javascript
javascript实现页面刷新时自动清空表单并选中的方法
2015/07/18 Javascript
JS实现新浪微博效果带遮罩层的弹出框代码
2015/10/12 Javascript
jQuery深拷贝Json对象简单示例
2016/07/06 Javascript
JS实现显示带倒影的图片横排居中放大展示特效实例【测试可用】
2016/08/23 Javascript
微信小程序 action-sheet底部菜单详解
2016/10/27 Javascript
详解Node.js利用node-git-server快速搭建git服务器
2017/09/27 Javascript
webpack将js打包后的map文件详解
2018/02/22 Javascript
微信小程序input框中加入小图标的实现方法
2018/06/19 Javascript
详解vue挂载到dom上会发生什么
2019/01/20 Javascript
jQuery实现判断滚动条滚动到document底部的方法分析
2019/08/27 jQuery
2019最新21个MySQL高频面试题介绍
2020/02/06 Javascript
js实现圆形显示鼠标单击位置
2020/02/11 Javascript
Node在Controller层进行数据校验的过程详解
2020/08/28 Javascript
[43:18]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
python Socket网络编程实现C/S模式和P2P
2020/06/22 Python
Python爬虫入门教程01之爬取豆瓣Top电影
2021/01/24 Python
基于HTML5 WebGL的3D机房的示例
2018/03/16 HTML / CSS
蓝颜请假条
2014/04/11 职场文书
会议室标语
2014/06/21 职场文书
竞聘自述材料
2014/08/25 职场文书
群众路线教育实践活动思想汇报(2014特荐篇)
2014/09/16 职场文书
中学生2014国庆节演讲稿:不屈的民族
2014/09/21 职场文书
党的群众路线教育实践活动总结
2014/10/30 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
医德医风个人总结
2015/02/28 职场文书
学校捐书倡议书
2015/04/27 职场文书
行政申诉状范文
2015/05/20 职场文书
毕业生政审意见范文
2015/06/04 职场文书
大学文艺委员竞选稿
2015/11/19 职场文书