ORM模型

 

ORM:是Object Relational Mapping的缩写。中文名称为对象关系映射,是面向对象的编程语言中常用的技术。用于实现面向对象语言里不同数据类型系统的数据之间的转换。


在Django中,使用SQL语句对数据库进行操作(小编是自用的是MySQL社区版)有很大局限性:
            1、对数据库操作直接使用mysql语句的话,经常会有一些重复的语句,python作为一门追求代码简洁优雅的语言,这个好像不能忍

2、在写后台时使用SQL语句,会有安全隐患。比如有人在在提交信息时写上SQL语句,就有可能对数据库造成破坏。这个就是通常所说的“SQL注入”问题。

3、有时候,一条SQL语句可能会很长。直接用SQL语句的话,就是一件让人蛋疼的事了。

主要思想:通过类的方式操作数据库,把表映射成类,把表中的每一列当做一个属性,把表的每一列当做一个实例对象。
 使用ORM模型可以有效解决mysql语句的不足,同时对性能的消耗也比较少。使用ORM模型操作mysql和使用navicat操作mysql类似,是对mysql语句进行封装,使执行起来方便。

首先要在models.py文件中定义ORM模型

from django.db import models

# ORM模型必须创建在models.py文件中
# 将一个普通的类变成可以映射到数据库中的ORM模型
# 需要将父类设置为models.Model或者是models.Model类的子类


class Fruit(models.Model):
    id = models.AutoField(primary_key=True)
    english_name = models.CharField(max_length=20, null=False)
    chinese_name = models.CharField(max_length=20, null=False)
    price = models.FloatField(null=False, default=0)
# 想要使用的话,必须先生成脚本迁移文件
# 进入工程文件,命令行输入:python manage.py mekemigrations
# 然后将生程的迁移文件映射到数据库中:python manage.py migrate

模型定义完可以在视图中定义相应的视图函数进行操作:

from django.shortcuts import render
from django.http import HttpResponse
from django.db import connection
from .models import Fruit


def add_fruit(request):
    # 向数据库中添加数据
    fruit = Fruit(id=1, chinese_name="香蕉", english_name="banana", price=3.5)
    fruit.save()
    fruit = Fruit(id=2, chinese_name="苹果", english_name="apple", price=4.5)
    fruit.save()
    # 从数据库中查询数据,默认的查询方式,参数pk即SQL语句中的主键
    Fruit.objects.get(pk=1)

    # 用下面的方式可以删除查询到的数据
    fruit1 = Fruit.objects.get(price=3.5)
    fruit1.delete()

    # 用下面的方式可以修改查询到的数据
    fruit2 = Fruit.objects.get(price=4.5)
    fruit2.price=4.0

这样就可以在Django项目中用ORM模型对数据库进行操作了。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值