MVT 之 M——模型

1.ORM框架

在数据库的使用过程中,我们可以使用SQL语句操作数据库,但是可能会存在SQL语句较多,会影响到开发的速度。使用ORM框架可以让我们通过对对象和类的操作实现对数据库的操作,而不使用SQL语句。本质上,ORM框架会帮我们自动的转换为SQL 语句,然后对数据库进行操作。
Django框架内嵌了ORM框架,不需要直接面向数据库编程,而是定义模型类,通过模型类和对象完成数据表的增删改查操作。
使用django进行数据库开发的步骤如下:
1.在models.py中定义模型类
2.迁移
3.通过类和对象完成数据增删改查操作

2.创建数据库表

1.选择需要使用的数据库
Django默认使用sqlite3,可以更改为使用MySQL
具体步骤为:
对<DjangoProject>/Settings.py文件下的DATABASES = {}进行修改,修改为以下内容

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 <appname>
同时,应该将创建的应用注册到Django中,
在<DjangoProject>/settings.py文件下的INSTALLED_APPS = [ ] 语句末尾加上刚刚创建的<AppName>

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'firstApp',
]

3.创建数据表,即模型类
在 <appname> /models.py 文件下编写模型类
以下为示例代码:

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

安装成功之后,在<DjangoProject>/init.py文件中加上如下代码:

import pymysql
pymysql.install_as_MySQLdb()

4.生成迁移文件
在控制台输入以下代码:

python manage.py makemigrations
python manage.py migrate

5.通过MySQL控制台查看生成的内容

show databases
use djtest
show tables

可以看到,djtest数据库中存在很多个表,其中<AppName>_<ClassName>,即为刚才创建的表。可以通过

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()

猜你喜欢

转载自blog.csdn.net/qq_41071191/article/details/107413609
今日推荐