【python】django数据库操作

第三方库准备: pip install mysqlclient

ORM

ORM可以做两件事:

  • 创建、修改、删除数据库中的表【无法创建数据库】
  • 操作表中数据

1 创建数据库

2 Django连接数据库

首先在settings文件中修改数据库配置

【python】django数据库操作
DATABASES = {
    'default':{
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'djtest',
        'USER': 'root',
        'PASSWORD': 'xxxx',
        'HOST': '127.0.0.1',
        'PORT': '3306'
    }
}

3 操作表

创建表,在models.py文件中

【python】django数据库操作
class UserInfo(models.Model):
    name = models.CharField(max_length=32)
    password = models.CharField(max_length=64)
    age = models.IntegerField()

终端执行命令:

python manage.py makemigrations
python manage.py migrate

【python】django数据库操作
添加修改删除表 在models.py文件中添加、修改、删除对应内容后,再次执行
python manage.py makemigrations
python manage.py migrate

修改时,如果要在已有表中添加字段会出现提示

【python】django数据库操作
选择1,手动输入一个值对已有数据填充
或添加默认值default或设置字段允许为空
data = models.IntegerField(default=2)
size = models.IntegerField(null=True, blank=True)

操作表中数据

添加数据

from app01.models import UserInfo, Department

Department.objects.create(title="销售部")
Department.objects.create(title="IT部")
Department.objects.create(title="运营部")

UserInfo.objects.create(name='BXR', password='123', age=20)
UserInfo.objects.create(name='WXW', password='123', age=40)

删除数据

UserInfo.objects.filter(id=2).delete()
Department.objects.all().delete()

查找数据


data_list = UserInfo.objects.filter(id=1)
for obj in data_list:
    print(obj.id, obj.name, obj.password, obj.age)
data = UserInfo.objects.filter(id=1).first()
print(data.id, data.name)

更新数据


UserInfo.objects.filter(name='BXR').update(password=123)

案例:用户管理

1 展示用户列表

  • URL
  • 函数
    获取所有用户信息
    HTML渲染

views.py

def info_list(request):

    data_list = UserInfo.objects.all()

    return render(request, 'info_list.html', {"data_list": data_list})

info_list.html

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户管理title>
head>
<body>
<h1>INFO列表h1>
<table border="2">
    <thead>
    <tr>
        <th>IDth>
        <th>姓名th>
        <th>密码th>
        <th>年龄th>
    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>
body>
html>

【python】django数据库操作
2 添加用户
  • URL
  • 函数
    GET,看到页面,输入内容
    POST,提交 → 写入到数据库

views.py

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, password=pwd, age=age)

    return redirect("/info/list")

info_add.html

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户管理title>
head>
<body>
<h1>添加用户h1>
{#<form method="post" action="/info/add/">#}
<form method="post">
    {% csrf_token %}
    <input type="text" name="user" placeholder="用户名">
    <input type="text" name="pwd" placeholder="密码">
    <input type="text" name="age" placeholder="年龄">
    <input type="submit" value="提交">
form>
body>
html>

【python】django数据库操作
【python】django数据库操作
列表中增加添加用户跳转连接
【python】django数据库操作
【python】django数据库操作
3 删除用户
  • URL
  • 函数
def info_delete(request):
    nid = request.GET.get('nid')
    UserInfo.objects.filter(id=nid).delete()
    return redirect("/info/list")

<td>
    <a href="/info/delete/?nid={{ obj.id }}">删除a>
td>

【python】django数据库操作
【python】django数据库操作

Original: https://blog.csdn.net/weixin_47781798/article/details/124817882
Author: ynliii
Title: 【python】django数据库操作

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/736722/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球