Django框架学习4

python Django框架学习4

Django框架学习4

本篇文章主要讲述django的模型类的创建、迁移和前端与数据库的交互。

模型类的创建:

工程中的模型类的位置在app目录下的models.py文件中,模型类里面定义的类属性是为了生成数据库里面的表结构使用的,简言之,这个文件中要定义这个app中所有要用到的数据,并根据关联性,把它们封装在不同的类(数据表)当中。一个模型类对应数据库中一张数据表,一个类属性对应数据表中一个字段。

我们以前面实现的项目——云端留言版为例
先根据留言版的web页面来确定在模型类中所要定义的数据字段

在这里插入图片描述如上图,我们定义4个字段并把他们封装到同一类ceshi类当中,分别是:

fs(发送方)
js(接收方)
data(留言信息)
time(留言时间)

然后在models.py文件中编写并封装这个类(代码如下):

from django.db import models
from datetime import datetime

# Create your models here.
class ceshi(models.Model):
    fs = models.CharField(max_length=20,verbose_name="发送方")
    js = models.CharField(max_length=20,verbose_name="接收方")
    data = models.CharField(max_length=200,verbose_name="内容")
    time = models.DateTimeField(default=datetime.now,verbose_name="发送日期")

    def __str__(self):
        return self.fs

    class Meta:
        verbose_name='内容信息'
        verbose_name_plural=verbose_name

其中重写str方法是为了方便在控制台返回查看返回的字段信息。

写好模型类后,我们需要在setting.py文件配置数据库信息
在这里插入图片描述这里我所使用的是mysql数据库,接下来,我们还需要在mysql中创建相应的数据库——liuyanban

这里我使用的是naticat for mysql数据库可视化软件
下载链接
在这里插入图片描述
这里是我创建好的数据库。

模型迁移:

1.生成迁移文件
在控制台输入以下命令:

python manage.py makemigrations

在这里插入图片描述
成功之后会在app目录下的migrations文件下生成对应的py文件
在这里插入图片描述

2.执行迁移

在控制台输入以下命令:

python manage.py migrate

注意在这一步可能会报出类似以下的错误:

django.core.exceptions.ImproperlyConfigured: mysqlclient 1.4.0 or newer is required; you have 0.9.3.

这条错误是因为Django2.2.10已经不能按照之前的老办法连接MySQL数据库了,会报错。直接用1.3.13或者以上版本mysqlclient连接,可以用1.4.6或者2.0.1等都可以。不用pymysql即可。直接在终端执行一般默认下载最新版本即可。
因此还需要在我们的python环境中安装mysqlclient这个包

在安装好包后,运行成功后如下图:
在这里插入图片描述到这里模型的迁移就算是成功了,现在在数据库中可以查看到我们在models.py文件中编写的类中所对应的数据表了

在这里插入图片描述

数据库交互:

在前面的云端留言板项目中,我所采用数据的存储方式是以txt文件存储,不方便数据的备份,因此我现在采用数据库的方式对云端留言板的数据进项存储。

我们在views.py文件中修改视图函数,
在这里插入图片描述存储数据只需要这一句就可以实现,然后我们注释掉使用文件存储数据的语句。

在查询数据库数据并向前端展示时,
在这里插入图片描述我们先查询数据库中所有内容,然后再进行判断接收人信息,然后把所查询到的数据返回到前端显示:
在这里插入图片描述
这里是提交数据,我们在我们的mysql数据库中进行查看:

在这里插入图片描述
现在我们在前端点击接收留言:
在这里插入图片描述数据成功返回!

总结

本文简单的讲述django模型类的建立、迁移还有与数据库的简单交互,这样可以保证数据的安全性,也是在学习django框架不可缺少的一步。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值