在数据库的使用过程中,我们可以使用SQL语句操作数据库,但是可能会存在SQL语句较多,会影响到开发的速度。使用ORM框架可以让我们通过对对象和类的操作实现对数据库的操作,而不使用SQL语句。本质上,ORM框架会帮我们自动的转换为SQL 语句,然后对数据库进行操作。
Django框架内嵌了ORM框架,不需要直接面向数据库编程,而是定义模型类,通过模型类和对象完成数据表的增删改查操作。
使用django进行数据库开发的步骤如下:
1.在models.py中定义模型类
2.迁移
3.通过类和对象完成数据增删改查操作
1.选择需要使用的数据库
Django默认使用sqlite3,可以更改为使用MySQL
具体步骤为:
对
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 修改为MySQL
'NAME':'djtest', # 数据库名字
'USER':'root', # 用户名
'PASSWORD':'*********', # 用户的MySQL登录密码
'HOST':'localhost', # 数据库所在主机的IP地址
'PORT':'3306', # 端口号,一般默认为3306
}
}
2.新建一个应用
Django中每一个应用实现一个功能,在控制台输入以下语句
python manage.py startapp firstApp
语句规则为:python manage.py startapp
同时,应该将创建的应用注册到Django中,
在
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'firstApp',
]
3.创建数据表,即模型类
在
以下为示例代码:
from django.db import models
# Create your models here.
'''
定义一个模型类,Book类
'''
class Book(models.Model):
name = models.CharField(max_length=5)
writer = models.CharField(max_length=15)
定义属性的语法为:
属性名 = models.字段类型(选项)
具体的关于模型类的定义会在以下博客进行说明
字段类型及选型详解
由于修改了使用的数据库为MySQL,所以要在当前环境中导入第三方库pymysql
pip install pymysql
安装成功之后,在
import pymysql
pymysql.install_as_MySQLdb()
4.生成迁移文件
在控制台输入以下代码:
python manage.py makemigrations
python manage.py migrate
5.通过MySQL控制台查看生成的内容
show databases
use djtest
show tables
可以看到,djtest数据库中存在很多个表,其中
desc firstapp_book
查看表结构
可以看到,Django为我们自动生成了一列,id,在创建表的时候id就会作为对应表的主键列,并且主键列自动增长
6.在刚刚创建的数据表操作数据
在控制台输入以下指令进入shell命令行
python manage.py shell
给数据表传入一个值
from firstApp.models import Book
Book.objects.all() # 查询数据表的全部数据,因为当前未导入数据因此返回值为空列表
b = Book() # 创建实例对象
# 设置对象的值
b.name = "射雕英雄传"
b.writer = "金庸"
# 保存数据
b.save()
获取指定的某一个数据
# 获取数据表中的数据
book = Book.objects.get(id = "1")
book.name
book.writer
book.name = "连城诀" # 修改书名为连城诀
book.save() # 保存修改
删除某一条数据
book.delete()