【Django 005】利用ORM和sqlite数据库交互

平常我们都是用SQL语句来操作关系型数据库,但是如果在python中插入一堆SQL语句实在是太繁琐。如果能把SQL操作封装成一个个的方法,利用面向对象的思想来操作该多好。前辈们早就已经想到了,于是才有了我们MTV模型中的M,也就是models。这一节我们就一起来看看如何在Django中操作Sqlite。

我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。

ORM

ORM(Object Relational Mapping),对象关系映射,是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。ORM在业务逻辑层和数据库层之间充当了桥梁的作用。

ORM解决的主要问题是对象和关系的映射。它通常把一个类和一个表一一对应,类的每个实例对应表中的一条记录,类的每个属性对应表中的每个字段。ORM提供了对数据库的映射,不用直接编写SQL代码,只需像操作对象一样从数据库操作数据。让软件开发人员专注于业务逻辑的处理,提高了开发效率。

利用models添加表

Django中通过MTV模型中的models来定义一个数据库的表,ORM会帮我们自动翻译为SQL中的DDL(Data Definition Language)。

还是以上一节的项目为例,在Two/models.py中添加如下内容,这里用类定义了一个模型,对应到数据库中的一个表Student,待会每个该类的实例都是表中的一条记录。这里还定义了表中的两个字段:

from django.db import models

# Create your models here.
class Student(models.Model):
    s_name = models.CharField(max_length=16)
    s_age = models.IntegerField(default=1)

然后创建一个迁移。这个操作将在Two/migrations创建一个文件:

(django) [fuhx@testmachine HelloDjango]$ python manage.py makemigrations
Migrations for 'Two':
  Two/migrations/0001_initial.py
    - Create model Student
(django) [fuhx@testmachine HelloDjango]$

我们打开这个文件Two/migrations/0001_initial.py看一下

from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Student',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('s_name', models.CharField(max_length=16)),
                ('s_age', models.IntegerF
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值