- Django开发操作数据库操作数据库更加简单,其中提供了一个orm框架
安装口令
1、创建数据库创建修改删除库中得表(不用写sql语句)无法创建爱你数据库
2、orm还可以协助我们操作表中你得数据
orm是一个翻译媒介可以协助我们把python代码翻译成sql语句
1.在settings.py文件中得进行配置和修改
mysqll 链接参考
DATABASES = {
"default": {
"ENGINE": "django.db.backends.mysql",
"NAME": "test",
"USER": "root",
"PASSWORD": "12345678",
"HOST": "127.0.0.1",
"PORT": "3306",
}
}
1、创建表 删除表 修改表 都是在models.py文件中进行操作.
写一个创建用户表得类
class UserInfo(models.Model):
name = models.CharField(max_length=32)
password = models.CharField(max_length=64)
age = models.IntegerField()
2.执行这个创建得类
终端跑以下两个命令行就可以创建数据库了
python manage.py makemigrations
增补 其他表得 直接再次执行以上两条命令
添加新得表得时候需要给一个默认值
开发中想对表格调整可以 在models.py里面调整数据库得表
1、操作表中的数据
给创建得表添加数据
Department1.objects.create(title='销售')
UserInfo.objects.create(name='谢凡',password='123456',age=18) #给这个类得复制效果
2、创建表数据示例 Department1.objects.create(title='前端',age=18)
Department1.objects.create(title='后端', age=24)
Department1.objects.create(title='全栈' )
3.删除表数据
Department1.objects.filter(title='全栈').delete()
Department1.objects.all().delete()
4.获取表中得数据
# 获取数据 获取得是一个列表 列表中是一行行得数据 类型是querset类型
data_list = Department1.objects.all()
# print(data_list)
for obj in data_list:
print(obj.id, obj.title, obj.age)#打印每行得数据所有得数据
return HttpResponse('数据库成功')
5、修改表中得数据
# 更新数据
Department1.objects.filter(title='前端').update(age=13)
#把标题名称为前端得数据数据年龄改成13
1.urls.pyurlpatterns = [
# path('admin/', admin.site.urls),
path('index/',views.index),
path('user/list/', views.user_list),
path('user/listadd/', views.user_add),
path('tpl/', views.tpl),
path('orm/', views.orm),
#请求和响应
path('someting/', views.someting),
#用户登录
path('login/',views.login),
#用户管理
path('info/list',views.infolist)
]
2.views.py
def infolist(requst):
#1.获取数据库汇总所有得用户信息
#[对象,对象,对象]
data_list = UserInfo.objects.all()
# for obj in data_list:
# print(obj.id, obj.name, obj.password,obj.age) # 打印每行得数据所有得数据
return render(requst, 'info.html',{'data_list':data_list})
3.info.html<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>用户信息</title>
<style>
td{
border: 1px red solid;
padding: 15px;
padding-top: 5px;
padding-bottom: 5px;
}
</style>
</head>
<body>
<h1>用户列表</h1>
<hr>
<table border="1" style="margin: 10px ;margin: auto;">
<thead>
<tr>
<td>id</td>
<td>姓名</td>
<td>密码</td>
<td>年龄</td>
</tr>
</thead>
<tbody>
{% for obj in data_list %}
<tr>
<td>{{ obj.id }}</td>
<td>{{ obj.name }}</td>
<td>{{ obj.password }}</td>
<td>{{ obj.age }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<hr>
</body>
</html>
1.添加用python def infoAdd(request):
# data_list = UserInfo.objects.all()
if request.method == 'GET':
return render(request, 'infoAdd.html')
# 用户提交数据
id = request.POST.get('id')
name = request.POST.get('name')
pwd = request.POST.get('pwd')
age = request.POST.get('age')
# print(id, name, pwd, age)
UserInfo.objects.create(id=id, name=name, password=pwd, age=age)
2.html<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>添加用户数据</title>
</head>
<body>
<h1>添加用户数据</h1>
<hr>
<form method="post" action="/info/add">
{% csrf_token %}
<input type="number" name="id" placeholder="用户id">
<input type="text" name="name" placeholder="用户名字">
<input type="text" name="pwd" placeholder="用户密码">
<input type="number" name="age" placeholder="用户年龄">
<input type="submit" value="提交">
</form>
</body>
</html>
def infoDelete(request):
nid = request.GET.get('nid')
#获取url后面得值例如http://127.0.0.1:8000/info/delete?nid=6545
UserInfo.objects.filter(id=nid).delete()
# return HttpResponse('删除成功')
return redirect('/info/list')
|