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
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
不通过数据源名DSN也能访问Access数据库吗?
pytorch实现线性拟合方式
![](https://img.aspxhome.com/file/2023/7/112807_0s.jpg)
python3下实现搜狗AI API的代码示例
图片格式与设计那点事儿
![](https://img.aspxhome.com/file/UploadPic/20111/6/2-bitmap-88s.jpg)
BP神经网络原理及Python实现代码
![](https://img.aspxhome.com/file/2023/8/72148_0s.jpg)
详解Django中CSRF和CORS的区别
![](https://img.aspxhome.com/file/2023/1/78741_0s.jpg)
Pandas聚合运算和分组运算的实现示例
Python3使用tesserocr识别字母数字验证码的实现
![](https://img.aspxhome.com/file/2023/5/95275_0s.png)
如何基于Python制作有道翻译小工具
![](https://img.aspxhome.com/file/2023/2/62922_0s.png)
异步完成后新开窗口
python使用KNN算法识别手写数字
Python中Pyenv virtualenv插件的使用
![](https://img.aspxhome.com/file/2023/0/78620_0s.png)
Django模板导入母版继承和自定义返回Html片段过程解析
Python heapq使用详解及实例代码
Python 实现劳拉游戏的实例代码(四连环、重力四子棋)
![](https://img.aspxhome.com/file/2023/2/110412_0s.png)
AJAX实现延时顺序请求多个URL
带你从内存的角度看Python中的变量
![](https://img.aspxhome.com/file/2023/7/121497_0s.jpg)
Python参数解析模块sys、getopt、argparse使用与对比分析
![](https://img.aspxhome.com/file/2023/1/80781_0s.png)
SQL SERVER数据库开发之asp存储过程应用
![](https://img.aspxhome.com/file/UploadPic/up/2008051913142215.jpg)