Django ORM操作

一、ORM配置

1、创建数据库
2、/settings.py 中设置

 

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'test',
        'USER': 'root',
        'PASSWORD': 'root',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }
}

 

 
3、/__init__.py中配置
import pymysql
pymysql.install_as_MySQLdb()

 

二、ORM创建表

1、/app01/models.py中创建表,一个类就是一个表,类名即表名,如创建外键django将会在设置字段名字的后面多加一个‘_id
from django.db import models


class UserGroup(models.Model):
    """部门表"""
    title = models.CharField(max_length=32)


class UserInfo(models.Model):
    """员工表"""
    # nid = models.BigAutoField(primary_key=True) #默认自动创建,可以不写
    user = models.CharField(max_length=32)
    password = models.CharField(max_length=64)
    # age = models.IntegerField(null=True)
    age = models.IntegerField(default=1)
    ug = models.ForeignKey('UserGroup', null=True, on_delete=models.CASCADE)
    # 创建UserGroup表的外键

 

 

 

2、/settings.py注册app
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01.apps.App01Config',   #注册app
]

 

 

3、创建数据库表,在控制台输入

 

python manage.py makemigrations
python manage.py migrate

 

# 这样就会在数据库中创建需要的表和字段

 

4、4

5、5

6、

 

三、数据库相关操作(增删改查)/app01/views.py

1、增加记录/app01/views.py,给两张表中各增加一条记录
models.UserGroup.objects.create(title='销售部') #这就增加到表里了
models.UserInfo.objects.create(
    user='root',
    password='pwd',
    age=19,
    ug_id=1
)

 

 

2、查找记录,查找两张表中的所有记录
models.UserGroup.objects.all()
models.UserInfo.objects.all()

 

(1) 、查看一下查出来的信息group_list QuerySet类型(列表)

group_list=models.UserGroup.objects.all()
print(group_list)

输出结果,是一个列表行的对象

 

[13/Mar/2021 23:59:01] "GET /app01/index.html HTTP/1.1" 200 3
<QuerySet [<UserGroup: UserGroup object (1)>, <UserGroup: UserGroup object (5)>]>

 

 要想获取到真正的值,需要for循环

group_list=models.UserGroup.objects.all()
print(group_list)
for row in group_list:
    print(row.id,row.title)

输出结果:

 

<QuerySet [<UserGroup: UserGroup object (1)>, <UserGroup: UserGroup object (5)>]>
1 销售部
5 销售部

 

newindex.html 渲染一下拿到内容

def index(request):
    # 增删改查
    from app01 import models
    #查询
    group_list=models.UserGroup.objects.all()
    print(group_list)
    for row in group_list:
        print(row.id,row.title)

    models.UserInfo.objects.all()

    return render(request,'newindex.html',{'group_list':group_list})

 

 输出结果: 

1===销售部
5===销售部

 

(2) 、查询,加条件,此时两个条件之间是and

group_list=models.UserGroup.objects.filter(id=1,title='销售部')

 

 

(3) 、查询,加条件,id__gt=1 表示id大于1;; id__lt=5表示id小于5

group_list=models.UserGroup.objects.filter(id__gt=1)
group_list=models.UserGroup.objects.filter(id__lt=5)

 

 

 

(4) 3

(5) 

 

3、删除记录

删除 UserGroup表中 id=5的记录

models.UserGroup.objects.filter(id=5).delete()

 

 

4、修改记录
models.UserGroup.objects.filter(id=5).update(title='公关部')

 

 

总结一下

models.UserGroup.objects.create(title='销售部') #增

models.UserGroup.objects.filter(id=5).delete() #删

models.UserGroup.objects.filter(id=5).update(title='公关部') #改

 

group_list=models.UserGroup.objects.filter(id=1,title='销售部') #查

group_list=models.UserGroup.objects.filter(id__gt=1) #查
group_list=models.UserGroup.objects.filter(id__lt=5) #查

 

posted @ 2021-04-19 23:38  茶叶蛋蛋  阅读(52)  评论(0编辑  收藏  举报