Django中ORM的基本使用教程
作者:JonnyJiang-zh 发布时间:2021-09-10 00:35:46
前言
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文件中去配置数据库,如下:
然后就需要打开我们的sqlite数据库文件看看了,这里,我们如果使用pycharm,可以按如下操作:
点击侧边那里
选择类型
点击图标
找到sqlite3文件然后应用。
此时发现:
中并没有user表,这时,我们需要再执行两条终端命令:
打开终端
第一条命令: python manage.py makemigration
第二条命令: python manage.py migrate
然后刷新:
就可以看到表格了,双击就可以进行编辑啦!!!
来源:https://www.cnblogs.com/JonnyJiang-zh/p/14170202.html


猜你喜欢
- 存储过程简介----------------------------------------------------------------
- 前言我们知道,enigma机是德军二战中重要的情报加密机器,其有许多特点。首先,它是一台加解密一体机其次,它有排己性,虽然多次输入同一明文可
- 检查bug的步骤1. bug定位在js脚本中,按照脚本执行的顺序,你可以用console或alert,来确定bug发生的代码区间,然后在区间
- 一、multiprocess模块multiprocess不是一个模块而是python中一个操作、管理进程的包。子模块分为四个部分:创建进程部
- 前言在前边的几篇文章中已经基本分享完了编译器前端的一些工作,后边的几篇主要是关于编译器对抽象语法树进行分析和重构,然后完成一系列的优化,其中
- 本文实例讲述了Python实现PS图像调整黑白效果。分享给大家供大家参考,具体如下:这里用Python 实现 PS 里的图像调整–黑白,PS
- 直方图,又称质量分布图,是一种统计报告图,由一系列高度不等的纵条或线段表示数据分布情况。用横轴表示数据类型,纵轴表示分布情况。直方图是数值数
- 一.设置客户端网络实用工具点击“开始”-“程序”,在“Microsoft SQL Server”菜单中选择“客户端网络实用工具”。在“别名”
- 一、mysql主(称master)从(称slave)复制的原理: (1).mas
- 集合(Set)集合是无序和无索引的集合。在 Python 中,集合用花括号编写。实例创建集合:thisset = {"apple&
- 本文实例讲述了Python从list类型、range()序列简单认识类(class)。分享给大家供大家参考,具体如下:list类型定义:it
- 一个网站的导航就相当于是一条路的路标,不同的是,网站的不同栏目页的入口远远比马路要来得复杂,所以一个清晰的导航设计对于一个网站的意义远远大于
- 本文实例讲述了python中while循环语句用法。分享给大家供大家参考。具体如下:number = 1while number <
- 介绍我们可以通过for循环来迭代list、tuple、dict、set、字符串,dict比较特殊dict的存储不是连续的,所以迭代(遍历)出
- 目录前言1、背景2、模拟测试3、结论总结前言如果不是踩到坑,我估计到现在还不知道时间字段会四舍五入。1、背景通过 Java 代码获取当日最大
- String含义:String是一个封装char[]数组的对象,字符串不可变String str = “abc&
- python中查找指定的字符串的方法如下:code#查询def selStr(): sStr1 = 'jsjtt.com
- reduce 方法(升序)语法: array1.reduce(callbackfn[, initialValue])参
- 本篇资料来于官方文档:http://cn.vuejs.org/guide/components.html#Props本文是在官方文档的基础上
- 一、pyqt5中动画的继承关系图二、关于QAbstractAnimation父类的认识1、主要作用继承此类, 实现一些自定义动画所有动画共享