满足低调之心基础--Django(3)

十一,ORM的使用及数据库表结构的创建

1,ORM的介绍

①ORM的概念

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

②ORM的优势

提供了数据库的映射,不用直接编写SQL代码,只需操作对象就能对数据库操作数据。

③ORM的劣势

ORM在一定程度上牺牲了程序的执行效率。

ORM的操作是有限的,也就是ORM定义好的操作是可以完成的,一些复杂的查询操作是完成不了的。

ORM用多了写SQL语句的能力就会有所降低。

2,Django中的ORM

在Django中的model是数据的单一,明确的数据来源,它包含了储存数据的重要字段和行为。通常,一个模型(model)映射到一个数据库表。如下图:
在这里插入图片描述

3,环境

打开setting.py文件,找到如下图所示内容
在这里插入图片描述
即创建项目时,Django默认的文件数据库环境已配置好

4,在models.py文件中创建表

models.py文件

from django.db import models

# Create your models here.

# 一个类就是一张表,表名为User,有两列,一列为username,已列为password,


class User(models.Model):
    username = models.CharField(max_length=32)
    password = models.CharField(max_length=32)

5,Django的文件数据库

在这里插入图片描述
将数据库添加到可视化工具中,点住db.sqlite3,然后直接拖动到可视化中即可

在这里插入图片描述
在这里插入图片描述
如果提示缺少相应的驱动,点击download即可
在这里插入图片描述
但是需要的表却没有,所以接下来执行命令将User表创建到数据库中,即数据库迁移
在这里插入图片描述
在这里插入图片描述
完成后查看表
在这里插入图片描述
添加数据
在这里插入图片描述

6,使用数据库

在views.py中导入User,有两种方法,推荐用②

from app01.models import User  # ①
from app01 import models  # ②

先测试一下,在views.py文件中添加如下代码

def logon1(request):
    # orm测试
    from app01 import models
    ret = models.User.objects.all()  # 对象列表
    for i in ret:
        print(i, i.username, i.password)
    return render(request, "logon1.html")

在这里插入图片描述
成功获取所要内容 。

将上个登录页面用上数据库

views.py中

from django.shortcuts import HttpResponse, render, redirect
from app01 import models
# Create your views here.


def index(request):
    # 业务逻辑

    # 返回结果
    # return HttpResponse("hello word!")  # 返回一个字符串
    return render(request, "index.html")  # 返回一个HTML页面


"""
def logon(request):
    # print(request, type(request))
    # 如果是get请求,返回logon.html页面
    if request.method == "POST":
        # return render(request, "logon.html")
    # else:
        # 如果是post请求
        # 获取用户提交的用户名和密码
        user = request.POST.get("user")
        pwd = request.POST.get("pwd")
        # 进行校验
        # 校验成功就告知登录成功
        if user == "hpl" and pwd == "123":
            # return HttpResponse("<h1>欢迎您进入!<h1>")
            # return redirect("/index/")
            return render(request, "index.html")
        # 校验失败还是返回logon.html页面
    return render(request, "logon.html")
"""


def logon(request):
    if request.method == "POST":
        user = request.POST.get("user")
        pwd = request.POST.get("pwd")
        if models.User.objects.filter(username=user, password=pwd):
            return render(request, "index.html")
    return render(request, "logon.html")


def logon1(request):
    # orm测试
    ret = models.User.objects.all()  # 获取所有对象列表
    for i in ret:
        print(i, i.username, i.password)
    return render(request, "logon1.html")

项目启动后,输入正确的用户名和密码,登录成功!

十二,使用MySQL数据库

把上面的文件型数据库改成MySQL数据库

先去创建一个名为logon1的数据库。打开DOS命令窗口,然后输入如下图命令
在这里插入图片描述
去安装一下pymysq这个模块,再去settings.py中配置一下环境
在这里插入图片描述
在app01下的models.py文件夹中写model(因刚才写了,就不用再写,可以使用)

from django.db import models

# Create your models here.

# 一个类就是一张表,表名为User,有两列,一列为username,已列为password,


class User(models.Model):
    username = models.CharField(max_length=32)
    password = models.CharField(max_length=32)

执行数据库迁移命令

python manage.py makemigrations
python manage.py migrate

执行完后,去可视化,按如下图操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
完成后去重启项目,一样OK!

未完,待续。。。

猜你喜欢

转载自blog.csdn.net/hpl980342791/article/details/114173382
今日推荐