一、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