个人博客,记录知识防止遗忘
django(四)简单使用:数据库的增删改查
django(四)简单使用:数据库的增删改查

django(四)简单使用:数据库的增删改查

django作为一个较成熟的web框架,自然也少不了常见的各种功能。

本文将简单介绍django中如何操作mysql数据库(增删改查)
并结合实际案例进行说明

django使用/连接mysql的方法此处不展开,请参考我的其他博客文章:

本文在一个加法页面上添加新的数据存储功能,该页面实现可以参考我的其他博客文章:

django(三)简单使用:实现一个加法页面

内容大纲

1 建表

django的数据库操作可以直接使用model来定义,具有幂等性,
包括建表、修改字段、删表、删库等常用的增删改查命令都已封装好,可以直接调用,无需手工登录数据库用sql命令创建。
这一点还是很方便的,省了不少力气

如下所示,在app1/models.py 文件中新增一个class。

定义表名为cal,表中定义3个字段并指明字段类型
(实际表名会是app_1_cal,因为默认会将app应用名称作为前缀)

在未指定primary_key的情况下,Django会默认创建一个id自增字段作为主键。

更多细节请参考django官方文档:
https://docs.djangoproject.com/zh-hans/3.0/howto/custom-model-fields/

from django.db import models
# Create your models here.

class cal(models.Model):
    value_a = models.CharField(max_length=50)
    value_b = models.FloatField(max_length=50)
    sum_ab  = models.CharField(max_length=50)

最后执行以下命令更新数据库表

python manage.py makemigrations
python manage.py migrate

登录数据库,新表已经建立

2 数据写入

对于实例cal,可以直接使用django自带方法写入数据,而不必再使用sql语句

编辑 app_1/views.py 新增以下代码

cal.objects.create(value_a=value_a, value_b=value_b, sum_ab=sum_ab)

3 编辑urls.py

from django.contrib import admin
from django.urls import path
from app_1 import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/', views.index),
    path('calpage/', views.CalPage),
    path('result/', views.Result),
    path('cal_list/', views.Cal_list),
    path('del/', views.Del),
]

4 views中新增查询和删除

def Cal_list(requst):  
    data = cal.objects.all()
    return render(requst, 'cal_list.html', context={'data': data})


def Del(requst):
    cal.objects.all().delete()
    return HttpResponse('已成功删库,请收拾好细软准备跑路!')

5 新增html页面,展示记录

<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <title>Cal_list</title>
</head>
<body>
<table border="1">
    <thead>
    <tr>
        <th>加数1</th>
        <th>加数2</th>
        <th></th>
    </tr>
    </thead>
    {% for i in data %}
    <tr>
        <td>{{ i.value_a }}</td>
        <td>{{ i.value_b }}</td>
        <td>{{ i.sum_ab }}</td>
    </tr>
    {% endfor %}
</table>
    <br>
    <form action="/calpage/" method="POST">
        {% csrf_token %}
        <input type="submit" value="返回主页面">
    </form>
    <br>
    <form action="/del/" method="POST">
        {% csrf_token %}
        <input type="submit" value="删库跑路">
    </form>
</body>

6 结果展示


可以看到,由于启用了csrf_token,cal_list后自动生成了一串token用于验证

删除之后,数据表中已没有任何数据

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注