1
resposta

consigo cadastra vários usuarios

Quando cadastro vários usuários é necessário eu repetir os comandos exemplo 1000 usuários ?

usuario1 = Usuario('luan', 'Luiz Antonio Marques', '1234') usuario2 = Usuario('Nico', 'Nico Steppat', '7a1') usuario3 = Usuario('flavio', 'flavio Almeida', 'javascript')

usuarios = {usuario1.id: usuario1, usuario2.id: usuario2, usuario3.id: usuario3}

1 resposta

Oii Gabriel, como você está?

Peço desculpas pela demora em obter um retorno.

Um modo de fazer é o dito por você, repetir o comando da criação das variáveis para mil usuários. Porém, fazer dessa forma é bem trabalhoso, além de demandar tempo.

Para fazer isso de uma forma mais prática podemos criar vários usuários dentro de um laço de repetição e e adicioná-los automaticamente na lista de usuários. Para esse exemplo estou utilizando a biblioteca Faker(), que é responsável por retornar dados fictícios, seja nomes próprios, nomes de usuários, cidade, país, dentre outros. Veja um exemplo de utilização dela:

from faker import Faker
fake = Faker()

for _ in range(10):
  print(fake.name())

# 'Adaline Reichel'
# 'Dr. Santa Prosacco DVM'
# 'Noemy Vandervort V'
# 'Lexi O'Conner'
# 'Gracie Weber'
# 'Roscoe Johns'
# 'Emmett Lebsack'
# 'Keegan Thiel'
# 'Wellington Koelpin II'
# 'Ms. Karley Kiehn V'

No exemplo acima, através da biblioteca Faker() geramos 10 nomes aleatórios e é essa a ideia que utilizaremos para cadastrar mil usuários no sistema, pois, pensar em nomes para mil usuários também demanda tempo e a biblioteca Faker() facilita isso para gente. Veja como fica com essa alteração no código original:

usuarios = {}

for _ in range(1000):
    id = fake.user_name()
    nome = id.upper()
    senha = fake.password(length=4)
    usuario = Usuario(id, nome, senha) # criando o objeto 

    usuarios[usuario.id] = usuario

No código acima utilizamos os recursos da biblioteca Faker para criar os dados fictícios para cadastrar os mil usuários e após isso criamos o objeto Usuario com os dados gerados. Nesse for o símbolo _ significa "dont care" (não importa), e isso porque não utilizamos o índice do for em momento algum nesse código, mas precisamos de utilizar um laço de repetição para gerar os dados.

Beleza, geramos os dados dos usuários, mas, como vamos saber qual o id e senha daquele usuário? Porque no código atual é explícito o nome de usuário e senha, mas no trecho acima não deixamos isso explícito. Para isso podemos utilizar a biblioteca Pandas para exportar os dados que criamos em formato csv (arquivo separado por vírgula), veja:

usuarios = {}
ids = []
nomes = []
senhas = []

for _ in range(1000):
    id = fake.user_name()
    nome = id.upper()
    senha = fake.password(length=4)
    usuario = Usuario(id, nome, senha)

    usuarios[usuario.id] = usuario
    ids.append(id)
    nomes.append(nome)
    senhas.append(senha)

dados_usuarios = {'id': ids, 'nome': nomes, 'senha': senhas}

df = pd.DataFrame(data=dados_usuarios)

df.to_csv("base_de_dados_usuarios.csv", index=False)

Para arquivar os dados obtidos criamos três listas que serão as colunas do nosso arquivo de base de dados e adicionamos os valores de id, nomes e senhas nas respectivas listas.

Após isso, na linha que temos: dados_usuarios = {'id': ids, 'nome': nome, 'senha': senhas} criamos um dicionário com os dados que foram armazenados nas listas. Posteriormente, na linha: df = pd.DataFrame(data=dados_usuarios) criamos o que o pandas chama de dataframe, que nada mais é do que uma tabela com as listas que fizemos. Veja um exemplo de um dataframe do pandas:

Agora, podemos exportar esses dados para um arquivo csv (arquivo separado por vírgulas) para que possamos consultar os dados dos usuários da aplicação para que possamos fazer o login no sistema:

O restante do código não muda, permanece o mesmo, e isso porque estamos utilizando a mesma variável usuarios que o professor utilizou ao longo do curso para criar um dicionário de usuários quando fazemos:

usuarios[usuario.id] = usuario

Que no código original é equivalente a:

usuarios = {usuario1.id: usuario1, 
            usuario2.id: usuario2, 
            usuario3.id: usuario3}

Deixo o código completo com as alterações citadas neste gist do giithub.

Importante: É necessário instalar a biblioteca Faker e a Pandas através do comando:

pip install faker
pip install pandas

Deixo por aqui a documentação da biblioteca Faker e Pandas para consultas futuras:

Qualquer dúvida é só falar, estou por aqui.

Abraços e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software