Registro de aprendizagem Django: Use ORM para operar o banco de dados MySQL e completar a adição, exclusão, modificação e consulta de dados

Registro de aprendizagem Django: Use ORM para operar o banco de dados MySQL e completar a adição, exclusão, modificação e consulta de dados

Operações de banco de dados

Banco de dados MySQL + pymysql

O desenvolvimento e operação do banco de dados Django são mais simples e uma estrutura ORM é fornecida internamente.

Instale módulos de terceiros
pip install mysqlclient

O que o ORM pode fazer:

1. Crie, modifique e exclua tabelas no banco de dados (sem escrever instruções SQL). [Não é possível criar banco de dados]

2. Manipule os dados da tabela (não há necessidade de escrever instruções SQL).

1. Crie seu próprio banco de dados

1) Inicie o serviço MySQL

2) Traga suas próprias ferramentas para criar um banco de dados

2. Django se conecta ao banco de dados

Configure e modifique no arquivo setting.py: o banco de dados mysql local está conectado aqui

DATABASES = {
    
    
    'default': {
    
    
        'ENGINE': 'django.db.backends.mysql',
        'NAME':  'dbname', # 数据库名字
        'USER':  'root',
        'PASSWORD':  'xxxxxx',
        'HOST':  'localhost',
        'PORT':  3306,
    }
}
3. Tabela de operações do Django
  • Criar a tabela

  • Excluir tabela

  • Modificar tabela

    Criar tabela: No arquivo models.py:

class UserInfo(models.Model):
    name = models.CharField(max_length=32) # charfield 字符串类型
    password = models.CharField(max_length=64)
    age = models.IntegerField() # IntegerField 整数类型

Equivalente a rodar no MySQL

create table app01_userinfo(
    id bigint auto_increment primary key,
    name varchar(32),
    password varchar(64),
    age int
);

Em seguida, execute os comandos sequencialmente no terminal: (Nota: o aplicativo precisa ser cadastrado com antecedência.)

python manage.py makemigrations
python manage.py migrate

Você pode criar o arquivo app01_userinfo no mysql

Insira a descrição da imagem aqui

*Ao adicionar uma coluna à tabela, como pode haver dados na coluna existente, a nova coluna deve especificar os dados correspondentes à nova coluna:

  1. Insira um valor manualmente

  2. Definir valor padrão

    size = models.IntegerField(default=2)
    
  3. Permitir vazio

    data = models.IntegerField(null=True, blank=True)
    

Se você quiser ajustar a estrutura da tabela durante o desenvolvimento:

  • Basta operar a classe no arquivo models.py.

  • Execute o comando no terminal

    python manage.py makemigrations
    python manage.py migrate
    

Adição, exclusão, modificação e consulta de dados

from app01 import models

1. Crie um novo

    # ###新建###
    models.Department.objects.create(title="销售部")
    models.Department.objects.create(title="IT部")
    models.Department.objects.create(title="运营部")
    models.UserInfo.objects.create(name="dumpling", password="123", age="22")
    models.UserInfo.objects.create(name="noodles", password="111", age="20")

2. Excluir

# ###删除###
    models.UserInfo.objects.filter(id=3).delete()
    models.Department.objects.all().delete()

3. Visualizar (obter dados)

    ###获取数据###
    #获取的是列表,列表是一行一行的数据
    #data_list = [行(对象) 行 行]   QuerySet类型
    data_list = models.UserInfo.objects.all()
    for obj in data_list:
            print(obj.id, obj.name, obj.password, obj.age)

    # 寻找id=1的数据。data_list = [对象,],这个方法取到的还是QuerySet类型
    data_list = models.UserInfo.objects.filter(id=1)
    # 取对象中的第一个,这个方法就能直接将第一行对象取出来
    row_obj = models.UserInfo.objects.filter(id=1).first()
    print(row_obj.id, row_obj.name, row_obj.password, row_obj.age)

4. Atualização

	models.UserInfo.objects.all().update(password=999)
    models.UserInfo.objects.filter(id=2).update(age=999)

Acho que você gosta

Origin blog.csdn.net/weixin_47723114/article/details/132046244
Recomendado
Clasificación