创建表
- 在models中写如下类
class Department(models.Model):
title = models.CharField(max_length=16)
- 执行命令
python manage.py makemigrations
python manage.py migrate
对表中的数据进行操作
- 新建
Department.objects.create(title="qwe")
- 删除
Department.objects.filter(id=1).delete() # 删除id为1
Department.objects.all().delete() # 删除表中所有数据
- 获取数据
data_list = [行(对象),行(对象),行(对象)] QuerySet类型
data_list = Department.objects.all() # 获取所有数据
for obj in data_list:
print(obj.id, obj.title)
- 更新数据
Department.objects.all().update(title="aaa") # 更新所有
Department.objects.filter(id="1").update(title="aaa") # 更新某行
案例:用户管理
- 展示用户列表
- url
- 函数
- 获取所有用户数据
- HTML渲染
2. 添加用户列表
- url
- 函数
- GET,看到页面,输入内容
- POST,提交,写入数据库
3. 删除用户
- url
- 函数
def info_delete(request):
nid = request.GET.get('nid')
UserInfo.objects.filter(id=nid).delete()
return HttpResponse("删除成功")
用户管理界面
进行优化,使得添加和删除在一个页面
models.py
from django.db import models
class UserInfo(models.Model):
name = models.CharField(max_length=32)
password = models.CharField(max_length=64)
age = models.IntegerField()
views.py
from django.shortcuts import render, HttpResponse, redirect, redirect
from requests import request
from app01.models import UserInfo
def info_list(request):
# 创建数据
# UserInfo.objects.create(name="bkys", password="123", age="20")
# 获取数据库中的所有用户信息
data_list = UserInfo.objects.all()
print(data_list)
return render(request, "info_list.html", {"data_list": data_list})
def info_add(request):
if request.method == "GET":
return render(request, "info_add.html")
user = request.POST.get("user")
pwd = request.POST.get("pwd")
age = request.POST.get("age")
# 添加到数据库
UserInfo.objects.create(name=user, password=pwd, age=age)
# 自动跳转
return redirect("/info/list/")
def info_delete(request):
nid = request.GET.get('nid')
UserInfo.objects.filter(id=nid).delete()
return redirect("/info/list/")
info_add.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>添加用户</h1>
<form method="post">
{% csrf_token %}
<input type="text" name="user" placeholder="用户名">
<input type="text" name="pwd" placeholder="密码">
<input type="text" name="age" placeholder="年龄">
<input type="submit" value="提交">
</form>
</body>
</html>
info_list.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>用户列表</h1>
<a href="/info/add/">添加</a>
<table border="1">
<thead>
<tr>
<th>id</th>
<th>name</th>
<th>pwd</th>
<th>age</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{% for obj in data_list %}
<tr>
<td>{{ obj.id }}</td>
<td>{{ obj.name }}</td>
<td>{{ obj.pwd }}</td>
<td>{{ obj.age }}</td>
<td>
<a href="/info/delete/?nid={{ obj.id }}">删除</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</body>
</html>
- 如下所示