0
点赞
收藏
分享

微信扫一扫

django ORM使用

一脸伟人痣 2022-03-11 阅读 79

ORM是什么:即对象关系映射
为什么使用ORM: 能够让不会写SQL的程序员,使用面向对象的语法即可简单快捷的使用SQL,极大的提升开发效率
可以帮创建数据表,但是不能创建数据库
操作表中的数据:不用写SQL语句
HttpResponse (HTTP请求)
render (渲染)
redirect (重定向)

对象一行行记录
对象点属性记录某个字段对应的值

orm创建用户信息表

可以实现添加,删除功能
效果展示

步骤详解
1.在setting中设置基础工作
在这里插入图片描述

2.在models.py中创建userInfo类:
具备信息:name名字,pwd密码,age年龄

#id不用创建,系统自增
class userInfo(models.Model):
    name=models.CharField( verbose_name='名字',max_length=32)
    pwd=models.CharField(verbose_name='密码',max_length=16)
    age=models.IntegerField()

在mysql中查看表头是否已创建成功
在这里插入图片描述
mysql查看表的方法:
1.mysql -u root -p
2.create 表名;
3.show databases;(找到你创建的表名)
4.use 表名;(进入该表)
5.desc 表名;(查看表头)
6.select * from app01_表名;(表里面所含内容)
在这里插入图片描述

创建urls

from django.contrib import admin
from django.urls import path
from app01 import views#重点,要写出你导入view视图层

#设置的网页链接‘admin’,后半段属于那个图层里面的函数功能
urlpatterns = [
    path('admin/', admin.site.urls),
    #用户管理
    path('info/list/',views.info_list),#用户列表
    path('orm/',views.orm),
    path('info/add/',views.info_add),#添加用户功能
    path('info/delete/',views.info_delete)#删除用户功能
]

views文件中

from django.shortcuts import render,HttpResponse,redirect
#导入数据信息
from app01.models import userInfo
# Create your views here.

def orm(request):
    #测试orm操作,表中的数据
    userInfo.objects.create(name='小王',pwd='123',age=24)
    userInfo.objects.create(name='lili',pwd='123',age=24)
    return HttpResponse('成功')
#在mysql中查找表是否建立成功

def info_list(request):
    #获取数据库中所有的用户信息
    datalist=userInfo.objects.all()
    #打印测试datalist是否获得所有用户的信息
    print(datalist)

    return render(request,"info_list.html",locals())

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,pwd=pwd,age=age)
    # return HttpResponse("添加成功")
    #自动跳转
    return redirect("http://127.0.0.1:8003/info/list/")

def info_delete(request):
    # models.userInfo.objects.all()
    id=request.GET.get('id')
    userInfo.objects.filter(pk=id).delete()
    return redirect("http://127.0.0.1:8003/info/list/")

用户网页和删除功能制作`

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>INFO列表</h1>
    <a href="/info/add/">添加</a>
    <table border="1">
    <thead>
    <tr>
        <th>ID</th>
        <th>名字</th>
        <th>密码</th>
        <th>年龄</th>
        <th>操作</th>
    </tr>
    </thead>
    <tbody>
        {% for item in datalist %}
       <tr>
           <th>{{ item.id }}</th>
           <th>{{ item.name }}</th>
           <th>{{ item.pwd }}</th>
           <th>{{ item.age }}</th>
{#           删除指定的用户id#}
           <th><a href="/info/delete/?id={{ item.id }}" class="button">删除</a></th>
       </tr>
        {% endfor %}
    </tbody>
    </table>

</body>
</html>


#用户添加网页
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>添加用户</h1>
<form action="/info/add/" method="post">
    {% csrf_token %}
    <input type="text" name="user" placeholder="用户名">
    <input type="password" name="pwd" placeholder="密码">
    <input type="text" name="age" placeholder="年龄">
    <input type="submit" value="提交">
</form>

</body>
</html>
举报

相关推荐

Django ORM

Django ORM 使用手册

Django ORM查询

Django-ORM

Django后端开发——ORM

django中的orm

0 条评论