平常我们都是用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

最低0.47元/天 解锁文章
3325

被折叠的 条评论
为什么被折叠?



