mysql和django运用 学习笔记

[复制链接]
查看: 1436   回复: 0

265

主题

265

帖子

1494

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1494
2023-9-27 07:24:59   显示全部楼层   阅读模式  
1.jpg

  • Django开发操作数据库操作数据库更加简单,其中提供了一个orm框架


1.png
pip install mysqlclient
安装口令

  • django得orm

1、创建数据库创建修改删除库中得表(不用写sql语句)无法创建爱你数据库
2、orm还可以协助我们操作表中你得数据

orm是一个翻译媒介可以协助我们把python代码翻译成sql语句

  • django链接mysql数据库


1.在settings.py文件中得进行配置和修改

mysqll 链接参考
DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.mysql",
        "NAME": "test",
        "USER": "root",
        "PASSWORD": "12345678",
        "HOST": "127.0.0.1",
        "PORT": "3306",
    }
}
  • django操作表


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
python manage.py migrate   
增补 其他表得 直接再次执行以上两条命令

添加新得表得时候需要给一个默认值

开发中想对表格调整可以 在models.py里面调整数据库得表


  • django对于数据orm 得增删改查


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
  • 小案例查看url数据库列表-展示数据库


1.urls.py
urlpatterns = [
    # 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>
  • 小案例get post 提交写入数据库-添加用户

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

回复

使用道具 举报

您需要登录后才可以回帖   登录 立即注册

高级模式

南通谢凡软件科技有限公司