python Django中使用 mysql 制作简单的用户列表【案例】

需求

  1. 用户列表
  2. 新增用户
  3. 删除用户
  4. 修改用户(待完成)

编写代码

配置 url 路径

1
2
3
4
5
6
7
8
9
10
# urls.py
from django.urls import path
from app01 import views

urlpatterns = [
path("user", views.user),
path("user/add", views.user_add),
path("user/delete/<int:user_id>", views.user_delete)
]

设计 user 表结构

1
2
3
4
5
6
7
8
9
10
# models.py
from django.db import models


class User(models.Model):
name = models.CharField(max_length=32)
password = models.CharField(max_length=64)
mobile = models.CharField(max_length=11)
role = models.IntegerField(default=0)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# views.py
from django.shortcuts import render, redirect
from app01.models import User


def user(request):
name = request.GET.get("n") or ''
password = request.GET.get("p") or ''
mobile = request.GET.get("m") or ''
message = request.GET.get("message")

user_list = User.objects.all()

return render(request,
"user/index.html",
{
"name": name,
"password": password,
"mobile": mobile,
"message": message,
"user_list": user_list
})


def user_add(request):
if request.method == "GET":
return redirect("/user")

name = request.POST.get("name")
password = request.POST.get("password")
mobile = request.POST.get("mobile")
if any([name == '', password == '', mobile == '']):
message = ''
if name == '':
message = "姓名不能为空。"
elif password == '':
message = "密码不能为空。"
elif mobile == '':
message = "手机号不能为空。"
return redirect(f"/user?n={name}&p={password}&m={mobile}&message={message}")

User.objects.create(name=name, password=password, mobile=mobile)

return redirect("/user")


def user_delete(request, user_id):
User.objects.filter(id=user_id).delete()
return redirect('/user')