djiango orm简单实现增删改查

一、配置数据库

1.1 在settings.py文件中找到DATABASES ,配置数据库连接,这里用的是mysql

在这里插入图片描述

'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'test',
        'USER': 'root',
        'HOST': '127.0.0.1',
        'PORT': 3306,
        'USER': 'root',
        'PASSWORD': '123456'
    }

ps: 注意:mysql的版本必须到8,不到8的请升级,不然后面会报版本不兼容

二、切换操作数据库的模块

在settings.py对应__init__.py文件中添加以下代码,使之使用mysql方式映射(多个app的话,只需在一个里面添加就行)
在这里插入图片描述

import pymysql
pymysql.version_info=(1,4,3,"final",0) # 指定了pymysql的版本:1.4.3,按照你版本修改
pymysql.install_as_MySQLdb()

三、 创建一个app并注册

3.1创建一个app

python manage.py startapp app1

在这里插入图片描述

3.2 注册app

在settings.py的INSTALLED_APPS进行注册
在这里插入图片描述

三、在app1定义模型类

在app1的models.py添加以下代码:
在这里插入图片描述

from django.db import models


class User(models.Model):
    name = models.CharField(max_length=30)
    age = models.IntegerField(30)
    job = models.CharField(max_length=30)


class Tweet(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    message = models.TextField()

四、迁移数据库,使用以下命令,生成表

表不需要去数据库创建,使用下面命令后会自动创建

python manage.py migrate

在这里插入图片描述
在这里插入图片描述

五、告知系统,app1中有个映射文件

python manage.py makemigrations app1

在这里插入图片描述
再次运行migrate来更新:

python manage.py migrate

在这里插入图片描述
在这里插入图片描述

增删改查

from django.shortcuts import render, redirect

# Create your views here.
from django.shortcuts import render,HttpResponse   ###导入HttpResponse
from app1.models import User

# 查
def query_user(request):
    user = User.objects.all()
    for i in user:
        print(i.id)
        print(user)
    context = {
    'users': user
}
    # 根据app的注册顺序,在每个app的templates目录下找
    return render(request, "user.html",context)
# 增
def save(request):
    id = request.POST.get("id")
    name = request.POST.get("name")
    age = request.POST.get("age")
    job = request.POST.get("job")

    if(id != 'None' ):
        User.objects.filter(id=id).update(name=name,age=age,job=job)
    else:

        User(name=name,age=age,job=job).save()

    return redirect('../query_user')


# 删

def delete(request):
     User.objects.get(pk=request.GET.get("id")).delete()
     return redirect('../query_user')

# 查单个
def info(request):
    id =  request.GET.get("id");
    if(id != None):
         context = {
              'user': User.objects.filter(id=request.GET.get('id'))[0]
         }
         return render(request,"info.html",context)
    else:
         return render(request,"info.html")

html代码之 info:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div style="margin: 0 auto">
<form action="../save/"  method="post">
    {% csrf_token %}
    <input type="hidden" name="id" value="{{ user.id }}">
    姓名:<input type="text" name="name" value="{{ user.name }}"><br>
    年龄:<input type="text" name="age" value="{{ user.age }}"><br>
    职业:<input type="text" name="job" value="{{user.job }}"><br>
    <input type="submit">
</form>
</div>
</body>
</html>

html代码之list:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<button>
    <a href="http://localhost:8000/app1/info">新增</a>
</button>
<table>
    <thead>
    <th>序号</th>
    <th>姓名</th>
    <th>年龄</th>
    <th>职业</th>
    <th>操作</th>

    </thead>
    <tbody>
    {% for user in users %}
       <tr>
            <td>{{user.id}}</td>
            <td>{{user.name}}</td>
            <td>{{user.age}}</td>
            <td>{{user.job}}</td>
            <td><a href="http://localhost:8000/app1/info?id={{ user.id }}">修改</a></td>
            <td><a href="http://localhost:8000/app1/delete?id={{ user.id }}">删除</a></td>
       </tr>
    {% endfor %}

    </tbody>
</table>
</body>
</html>
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值