- 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')
  
 |