Django中orm的简述

一、orm的增删查改

orm创建表如下:

1class User(models.Model): 2 id = models.AutoField(primary_key=True) 3 name = models.CharField(max_length=32) 4 password = models.CharField(max_length=32) 5 adder=models.CharField(max_length=64,default='上海')

查:可以使用(render(request,'user_list.html','lian_list':set))获得

1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <title>主表</title> 6</head> 7<body> 8<table border="1"> 9 <thead> 10 <tr> 11 <th>id</th> 12 <th>name</th> 13 <th>password</th> 14 <th>adder</th> 15 </tr> 16 </thead> 17 <tbody> 18 {% for lian in lian_list %} 19 <tr> 20 <td>{{ lian.id }}</td> 21 <td>{{ lian.name }}</td> 22 <td>{{ lian.password }}</td> 23 <td>{{ lian.adder }}</td> 24 <td> <a href="/del_list/?id={{ lian.id }}">删除</a></td> 25 <td> <a href="/update_list/?id={{ lian.id }}">改变</a></td> 26 </tr> 27 {% endfor %} 28 29 </tbody> 30 <a href="/add_list/">添加</a> 31</table> 32</body> 33</html>

user_list主页代码

1def user_list(request): 2 if request.method == 'GET': 3 ret = models.User.objects.all() 4 return render(request, 'user_list.html', {'lian_list': ret})

views中user_list代码

增:可以直接在models中创建的User表中添加一个字段adder后执行Python3 manag.py makemigrations 与python3 manage.py migrate

有两种方法分别为

1.models.User.objects.create(name=name,password=password,adder=adder)

2.res=models.User(name=name,password=password,adder=adder)

res.argv()

1def update_list(request): 2 if request.method=='GET': 3 return render(request,'update_list.html') 4 elif request.method=='POST': 5 id = request.GET.get('id') 6 name=request.POST.get('name') 7 password=request.POST.get('password') 8 adder=request.POST.get('adder') 9 models.User.objects.filter(id=id).update(name=name,password=password,adder=adder) 10 return redirect('/user_list/')

views中update_list代码

删:可以分别执行以下代码

在user_list.html中<tobody>下<tr>下<td> <a href="/del_list/?id={{ lian.id }}">删除</a></td>

View Code

1def del_list(request): 2 if request.method == 'GET': 3 id = request.GET.get('id') 4 models.User.objects.filter(id=id).delete() 5 return redirect('/user_list/')

views中del_list代码

改:方法为(models.User.objects.filter(id=id).update(name=name,password=password,adder=adder))

1def add_list(request): 2 if request.method == 'GET': 3 return render(request, 'add_list.html') 4 elif request.method == 'POST': 5 name = request.POST.get('name') 6 password = request.POST.get('password') 7 adder = request.POST.get('adder') 8 models.User.objects.create(name=name, password=password, adder=adder) 9 return redirect('/user_list/')

views中add_list代码

二、user的增删查改

***重点****:
1 单表查询所有用户:models.User.objects.all()
得到的是 queryset对象(当成列表),列表里面,一个一个的对象[user1,user2]
2 render(request, 'userlist.html', {'user_list': ret})
3 模板里: {% for user in user_list %}
#要循环的内容
{{user.name}}
{% endfor%}
4 get请求携带参数:
http://127.0.0.1:8000/deleteuser/?id=1
后台取值:request.GET.get('id')
request.GET['id']
5 orm删除记录 models.User.objects.filter(id=id).delete()
返回值:影响的行数
6 前台post提交的数据取值:name=request.POST.get('name')
7 orm保存:
两种方式:
1 user=models.User.objects.create(name=name,password=pwd,address=addr)
2 user=models.User(name=name,password=pwd,address=addr)
user.save()
8 orm查询单条数据:user=models.User.objects.filter(id=id).first()
9 orm的修改 models.User.objects.filter(id=id).update(name=name,password=pwd,address=addr)

演示如下:

1"""lianxi URL Configuration 2 3The `urlpatterns` list routes URLs to views. For more information please see: 4 https://docs.djangoproject.com/en/1.11/topics/http/urls/ 5Examples: 6Function views 7 1. Add an import: from my_app import views 8 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') 9Class-based views 10 1. Add an import: from other_app.views import Home 11 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') 12Including another URLconf 13 1. Import the include() function: from django.conf.urls import url, include 14 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) 15""" 16from django.conf.urls import url 17from django.contrib import admin 18from app01 import views 19 20urlpatterns = [ 21 url(r'^admin/', admin.site.urls), 22 url(r'^user_list/', views.user_list), 23 url(r'^del_list/',views.del_list), 24 url(r'^add_list/',views.add_list), 25 url(r'^update_list/', views.update_list), 26]

urls路由

1from django.shortcuts import render, redirect 2from app01 import models 3 4 5# Create your views here. 6def user_list(request): 7 if request.method == 'GET': 8 ret = models.User.objects.all() 9 return render(request, 'user_list.html', {'lian_list': ret}) 10 11 12def del_list(request): 13 if request.method == 'GET': 14 id = request.GET.get('id') 15 models.User.objects.filter(id=id).delete() 16 return redirect('/user_list/') 17 18 19def add_list(request): 20 if request.method == 'GET': 21 return render(request, 'add_list.html') 22 elif request.method == 'POST': 23 name = request.POST.get('name') 24 password = request.POST.get('password') 25 adder = request.POST.get('adder') 26 models.User.objects.create(name=name, password=password, adder=adder) 27 return redirect('/user_list/') 28def update_list(request): 29 if request.method=='GET': 30 return render(request,'update_list.html') 31 elif request.method=='POST': 32 id = request.GET.get('id') 33 name=request.POST.get('name') 34 password=request.POST.get('password') 35 adder=request.POST.get('adder') 36 models.User.objects.filter(id=id).update(name=name,password=password,adder=adder) 37 return redirect('/user_list/')

views视图函数

1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <title>主表</title> 6</head> 7<body> 8<table border="1"> 9 <thead> 10 <tr> 11 <th>id</th> 12 <th>name</th> 13 <th>password</th> 14 <th>adder</th> 15 </tr> 16 </thead> 17 <tbody> 18 {% for lian in lian_list %} 19 <tr> 20 <td>{{ lian.id }}</td> 21 <td>{{ lian.name }}</td> 22 <td>{{ lian.password }}</td> 23 <td>{{ lian.adder }}</td> 24 <td> <a href="/del_list/?id={{ lian.id }}">删除</a></td> 25 <td> <a href="/update_list/?id={{ lian.id }}">改变</a></td> 26 </tr> 27 {% endfor %} 28 29 </tbody> 30 <a href="/add_list/">添加</a> 31</table> 32</body> 33</html>

templates下user_list

1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <title>改变</title> 6</head> 7<body> 8<form action="" method="post"> 9 <p>用户名: <input type="text" name="name"></p> 10 <p>密码: <input type="password" name="password"></p> 11 <p>地址: <input type="text" name="adder"></p> 12 <input type="submit" value="改变"> 13</form> 14</body> 15</html>

templates下update_list

1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <title>添加</title> 6</head> 7<body> 8<form action="" method="post"> 9 <p>用户名: <input type="text" name="name"></p> 10 <p>密码: <input type="password" name="password"></p> 11 <p>地址: <input type="text" name="adder"></p> 12 <input type="submit" value="提交"> 13</form> 14</body> 15</html>

templates下add_list

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )