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
*Ao adicionar uma coluna à tabela, como pode haver dados na coluna existente, a nova coluna deve especificar os dados correspondentes à nova coluna:
-
Insira um valor manualmente
-
Definir valor padrão
size = models.IntegerField(default=2)
-
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)