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>