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 序列化 pickle/cPickle模块使用介绍
Nov 30 Python
对django中render()与render_to_response()的区别详解
Oct 16 Python
使用django-guardian实现django-admin的行级权限控制的方法
Oct 30 Python
Django 拆分model和view的实现方法
Aug 16 Python
详解Python中字符串前“b”,“r”,“u”,“f”的作用
Dec 18 Python
Selenium元素定位的30种方式(史上最全)
May 11 Python
PyCharm2020.1.1与Python3.7.7的安装教程图文详解
Aug 07 Python
Python+OpenCV图像处理——图像二值化的实现
Oct 24 Python
详解python定时简单爬取网页新闻存入数据库并发送邮件
Nov 27 Python
使用sublime text3搭建Python编辑环境的实现
Jan 12 Python
python使用scapy模块实现ARP扫描的过程
Jan 21 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
Jan 27 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
PHP在Web开发领域的优势
2006/10/09 PHP
PHP中设置时区,记录日志文件的实现代码
2013/01/07 PHP
php创建基本身份认证站点的方法详解
2013/06/08 PHP
递归删除一个节点以及该节点下的所有节点示例
2014/03/19 PHP
windows7下安装php的php-ssh2扩展教程
2014/07/04 PHP
php使用timthumb生成缩略图的方法
2016/01/22 PHP
Extjs学习笔记之二 初识Extjs之Form
2010/01/07 Javascript
Jquery为a标签的href赋值实现代码
2013/05/03 Javascript
iframe子父页面调用js函数示例
2013/11/07 Javascript
js中prototype用法详细介绍
2013/11/14 Javascript
js处理自己不能定义二维数组的方法详解
2014/03/03 Javascript
基于promise.js实现nodejs的promises库
2014/07/06 NodeJs
批量修改标签css样式以input标签为例
2014/07/31 Javascript
JavaScript中this详解
2015/09/01 Javascript
实例解析jQuery插件EasyUI最常用的表单验证规则
2015/11/29 Javascript
使用node+vue.js实现SPA应用
2016/01/28 Javascript
JavaScript语言精粹经典实例(整理篇)
2016/06/07 Javascript
AngularJS入门教程之表单校验用法示例
2016/11/02 Javascript
vue项目中jsonp跨域获取qq音乐首页推荐问题
2018/05/30 Javascript
微信小程序实现一张或多张图片上传(云开发)
2019/09/25 Javascript
VUE.CLI4.0配置多页面入口的实现
2019/11/25 Javascript
Python编码时应该注意的几个情况
2013/03/04 Python
Matplotlib 生成不同大小的subplots实例
2018/05/25 Python
详解Django 时间与时区设置问题
2019/07/23 Python
Python vtk读取并显示dicom文件示例
2020/01/13 Python
基于python实现计算两组数据P值
2020/07/10 Python
Python GUI库Tkiner使用方法代码示例
2020/11/27 Python
长青弘远的面试题
2012/06/09 面试题
个人求职简历的自我评价范文
2013/10/09 职场文书
卫生巾广告词
2014/03/18 职场文书
产品设计开发计划书
2014/05/07 职场文书
幼儿园安全责任书范本
2014/07/24 职场文书
劳动争议和解协议书范本
2014/11/20 职场文书
办公室年度工作总结2015
2015/05/21 职场文书
nginx配置proxy_pass中url末尾带/与不带/的区别详解
2021/03/31 Servers
springboot中一些比较常用的注解总结
2021/06/11 Java/Android