一个增删改查小demo,带你快速了解Django框架

发布于:2024-10-15 ⋅ 阅读:(70) ⋅ 点赞:(0)

1、创建一个Django项目

可参考之前的带你快速体验Django web应用
我使用的是mysql数据库。按照上述教程完成准备工作。

2、创建一个app并完成注册

demo主要来完成创建用户、修改用户、查询用户、删除用户的操作。

python manage.py startapp demo

3、app的目录

  • 新建templates,用于存放用到的模版
  • 新建urls,用于管理demo的路由
    在这里插入图片描述

4、模型层

修改models.py

from django.db import models


# Create your models here.

class User(models.Model):
    # 用戶名
    username = models.CharField(max_length=20)
    # 密码
    password = models.CharField(max_length=20)
    # 创建时间
    # DateTimeField里面可以接收参数,auto_now_add是指使用第一次创建的时间。
    create_time = models.DateTimeField(auto_now_add=True)
    # 更新时间
    # auto_now是指使用每次更新数据的时间
    update_time = models.DateTimeField(auto_now=True)

5、创建用户

给用户一个前端交互页面,UI如下图,交互逻辑:用户访问http://127.0.0.1:8000/demo/create/,将看到创建用户的表单,点击提交会转到http://127.0.0.1:8000/demo/create/user/,进行用户的创建。
在这里插入图片描述

5.1 路由

首先,修改project下的urls.py,将demo添加进去。

from django.contrib import admin
from django.urls import path, include
urlpatterns = [
    path("demo/", include("demo.urls")),
]

然后,在demo/urls.py中添加路由和视图

from django.urls import path

from demo.views import *

urlpatterns = [
    path('create/user/', create_user),
    path('create/', get_create_user_html),
]

5.2 模版

在demo/templates 下新建一个html文件,create_user_post.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>create user</title>
</head>
<body>
<form action="http://127.0.0.1:8000/demo/create/user/" method="post">
    {% csrf_token %}
    <p>用户名: <input type="text" name="username"></p>
    <P>密码: <input type="text" name="password"></P>
    <input type="submit" value="提交">
</form>

</body>
</html>

5.3 视图

接下来实现视图create_user 和 get_create_user_html

from django.shortcuts import render
from django.views.decorators.csrf import csrf_exempt

from .models import User  # 使用相对路径


def get_create_user_html(request):
    return render(request, "create_user_post.html")


@csrf_exempt
def create_user(request):
    # 获取表单中的username 和 password
    username = request.POST["username"]
    password = request.POST["password"]
    # 将数据存放在字典中
    data = {
   "username": username, "password": password}
    print(data)
    # 获取user对象并执行数据库创建操作
    obj = User.objects.all()
    obj.create(</