def alterar_artists(self): # Funcao para alterar os dados de cada artista db.__init__() print ( "\nEsta prestes a ALTERAR dados da tabela 'ARTISTAS'." ) self.name = input ( "\nInsira o NOME do Artista que pretende Alterar: " ) try: with db.connection: db.cursor.execute ( '''SELECT Name FROM artists WHERE Name = ? ''', ( self.name, ) ) exists1 = db.cursor.fetchall() if exists1: # se existir o nome do artista pode colocar o novo nome new_name = input ( "Insira o novo NOME do Artista: " ) db.cursor.execute ( '''SELECT Name FROM artists WHERE Name = ? ''', ( new_name, ) ) exists = db.cursor.fetchall() if not exists: # se nao existir o novo nome na bd e alterado db.cursor.execute ( '''UPDATE artists SET Name = ? WHERE Name = ? ''', ( new_name, self.name ) ) db.getcommit() print ( "\nO Nome do Artista foi alterado com sucesso!" ) print ( "O Artista", self.name, "possui um novo Nome:", new_name ) else: # se o novo nome ja existe da erro print ( "\nERRO! O Artista",new_name,"ja existe!" ) else: # se o artista nao existir na bd print ( "\nERRO! O Artista",self.name,"nao existe!" ) except sqlite3.IntegrityError: # qualquer outro erro que possa acontecer print ( "\nERRO! Impossivel ALTERAR o Artista!" ) finally: db.closedb()
def show_albums(self): # Funcao para listar os albums db.__init__() pergunta = input( "\n1.Listar TODOS os Albums | 2.Listar POR LETRA/NOME os Albums:") # Uma pergunta feita para saber se pretende listar tudo ou por nome/letra if pergunta == '1': # se escolher todas os albums db.cursor.execute("select * from albums limit 00,1000;") self.results = db.cursor.fetchall() view.apresentacao_dados_albums( ) # view para ver como os dados do album sao apresentados for i, row in enumerate( self.results, start=1 ): # vai numerar os resultados do album a começar do 1 print(row) if i % 20 == 0: # if para apenas mostrar 20 albums de cada vez e enter para listar mais x = input( "\nPressione 'ENTER' para listar mais ou 'S' para sair!:" ) if x == '': continue elif x == 'S' or x == 's': break elif x != 'S' or x == 's': print("\nOPCAO INVALIDA!\n") break elif pergunta == '2': # opcao de listar por letra/nome askLetter = input("\nListar todos os 'Albums' pela letra:") db.cursor.execute("Select * FROM albums WHERE Title like'" + askLetter + "%'") self.results = db.cursor.fetchall() view.apresentacao_dados_albums() for i, row in enumerate( self.results, start=1 ): # vai numerar os resultados do album a começar do 1 print(row) if i % 10 == 0: # if para apenas mostrar 10 albums de cada vez e enter para listar mais x = input( "\nPressione 'ENTER' para listar mais ou 'S' para sair!:" ) if x == '': continue elif x == 'S' or x == 's': break elif x != 'S' or x == 's': print("\nOPCAO INVALIDA!\n") break else: # uma opcao diferente das disponiveis print("\nESCOLHA UMA OPCAO VALIDA!\n")
def apagar_albums(self): # Funcao para apagar albums db.__init__() print("\nEsta prestes a APAGAR dados da tabela 'Albums'.") self.title = input("Titulo do Album: ") try: with db.connection: db.cursor.execute('''SELECT Title FROM albums WHERE Title=?''', (self.title, )) exists = db.cursor.fetchall() if exists: # se o nome do album existir na bd continua e apaga db.cursor.execute( '''DELETE FROM Albums WHERE Title = ? ''', (self.title, )) db.getcommit() print("\nO Album", self.title, "foi eliminado com sucesso!") else: # senao da erro print("\nERRO! O Album", self.title, "nao existe!") except sqlite3.IntegrityError: # qualquer outro erro que possa acontecer print("\nERRO! Impossivel APAGAR o album!") finally: db.closedb()
def apagar_genres(self): # Funcao para apagar generos db.__init__() print("\nEsta prestes a APAGAR dados da tabela 'Generos'.") self.name = input("Nome do Genero:") try: with db.connection: db.cursor.execute('''SELECT Name FROM genres WHERE Name=?''', (self.name, )) exists = db.cursor.fetchall() if exists: # se o nome do genero existir na bd continua e apaga db.cursor.execute('''DELETE FROM genres WHERE Name = ? ''', (self.name, )) db.getcommit() print("\nO Genero,", self.name, "foi eliminado com sucesso!") else: # senao da erro print("\nERRO! O Genero", self.name, "nao existe!") except sqlite3.IntegrityError: # qualquer outro erro que possa acontecer print("\nERRO! Impossivel APAGAR o Genero!") finally: db.closedb()
def inserir_genres(self): # Funcao para inserir novos generos db.__init__() print("\nEsta prestes a INSERIR dados na tabela 'Generos'.") self.name = input("Nome do genero: ") try: with db.connection: db.cursor.execute('''SELECT Name FROM genres WHERE Name=?''', (self.name, )) exists = db.cursor.fetchall() if not exists: # se o genero nao existir ja na bd executa db.cursor.execute('''INSERT INTO genres(Name)VALUES(?)''', (self.name, )) db.getcommit() print( "\nDados inseridos com sucesso na tabela 'Generos' da base de dados." ) print("Genero:", self.name) else: # se o novo nome ja existe da erro print("\nERRO! O Genero", self.name, "ja existe!") except sqlite3.IntegrityError: # qualquer outro erro que possa acontecer print("\nERRO! Impossivel inserir Artista! ") finally: db.closedb()
def inserir_albums(self): # Funcao para inserir novos albums db.__init__() print("\nEsta prestes a INSERIR dados na tabela 'Albums'.") while True: # ciclo while para pedir informacoes do album ao utilizador try: self.title = input("\nTitulo do album: ") self.artistid = int(input("ID do artista: ")) if self.title == '' or self.title == ' ': # titulo vazio da erro print("\nERRO! INSIRA TODOS OS DADOS!") break elif self.artistid == '' or self.artistid == ' ': # id do artista da erro print("\nERRO! INSIRA TODOS OS DADOS!") break else: # continua senao houver erros nenhums try: with db.connection: db.cursor.execute( '''SELECT Title FROM albums WHERE Title=?''', (self.title, )) exists = db.cursor.fetchall() if not exists: # vai verificar o nome do album na bd senao existir executa db.cursor.execute( '''INSERT INTO albums(Title, Artistid) VALUES(?,?)''', (self.title, self.artistid)) db.getcommit() print( "\nDados inseridos com sucesso na tabela 'Albums' da base de dados." ) print("\nTitulo:", self.title) print("ID Artista:", self.artistid) break else: # senao da erro que o nome do album ja existe na bd print("\nERRO! O Album com o Titulo,", self.title, "ja existe!") except sqlite3.IntegrityError: # qualquer outro erro que possa acontecer print("\nERRO! Impossivel criar Album!") finally: db.closedb() except ValueError as error: # qualquer outro erro de parametros print("\nErro de Parametro! Valor Inteiro/Decimal/Vazio!") print("Erro:", error) break
def newUser( self ): # Função para fazer o registo de um novo utilizador à base de dados. db.__init__() self.nome = input(('Username:'******'SELECT nome FROM utilizadores WHERE nome = ?', (self.nome, )) verifica_nome = db.cursor.fetchall() if len(verifica_nome) > 0: print('Ja existe pessoas com esse nome!\nTente outro') else: self.password = en.criarPass() db.__init__() db.cursor.execute( '''INSERT INTO utilizadores (id, nome, password) VALUES(?,?,?)''', (self.id, self.nome, self.password)) db.getcommit() print("\nRegisto completado com sucesso!\n") import main
def oldUser( self ): # Função para verificar a existecia de um utilizador na base de dados e fazer o seu respetivo login db.__init__() self.nome = input("\nInsira o seu username:"******"SELECT * FROM utilizadores WHERE nome= ? and password= ?", (self.nome, self.password)) found = db.cursor.fetchone() if self.nome == "admin" and self.password == "21232f297a57a5a743894a0e4a801fc3": # Caso o nome e a password forem admin entra no menu admin import admin elif found: print("\nLogin feito com sucesso!\n") import main else: print("\nUsername ou a password não existem\n")
from flask import Flask from flask_restful import Api from flask_jwt import JWT from security import authenticate, identity from resources.user import UserRegister from resources.item import Item, ItemList from resources.store import Store, StoreList app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = os.environ.get('DATABASE_URL', 'sqlite:///data.db') app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False app.config['PROPAGATE_EXCEPTIONS'] = True app.secret_key = 'jose' api = Api(app) jwt = JWT(app, authenticate, identity) api.add_resource(Store, '/store/<string:name>') api.add_resource(StoreList, '/stores') api.add_resource(Item, '/item/<string:name>') api.add_resource(ItemList, '/items') api.add_resource(UserRegister, '/register') if __name__ == '__main__': from db import db db.__init__(app) app.run(debug=True) # important to mention debug=True
def alterar_albums(self): # Funcao para modificar os dados de cada album db.__init__() print("\nEsta prestes a ALTERAR dados da tabela 'Albums'.") alt1 = input("\nPretende alterar: 1.TITULO | 2.ID do Artista: ") try: with db.connection: if alt1 == '1': # a escolha um para alterar o titulo do album self.title = input( "\nInsira o Titulo do album que pretende alterar: ") db.cursor.execute( '''SELECT Title FROM albums WHERE Title = ? ''', (self.title, )) exists1 = db.cursor.fetchall() if exists1: # se existir o titulo do album pode colocar o novo titulo new_title = input("Insira o NOVO Titulo do album: ") db.cursor.execute( '''SELECT Title FROM albums WHERE Title = ? ''', (new_title, )) exists = db.cursor.fetchall() if not exists: # se nao existir o novo titulo na bd e alterado db.cursor.execute( '''UPDATE albums SET Title = ? WHERE Title = ? ''', (new_title, self.title)) db.getcommit() print( "\nO Titulo do Album foi alterado com sucesso!" ) print("O Album", self.title, "possui um novo Titulo:", new_title) else: # se o novo titulo ja existe da erro print("\nERRO! O Album", new_title, "ja existe!") else: # se o album nao existir na bd print("\nERRO! O Album", self.title, "nao existe!") elif alt1 == '2': # se escolher a operacao de mudar id do artista self.title = input( "\nInsira o Titulo do album que pretende alterar o ID do Artista: " ) db.cursor.execute( '''SELECT Title FROM albums WHERE Title = ? ''', (self.title, )) exists = db.cursor.fetchall( ) # guarda o titulo do album para ver se existe na bd if exists: # se existir pode continuar new_artistid = input("Insira o NOVO ID do artista: ") db.cursor.execute( '''UPDATE Albums SET ArtistId = ? WHERE Title = ? ''', (new_artistid, self.title)) db.getcommit() print("\nID do Artista alterado com sucesso!") print("O Album", self.title, "possui um novo Artista com o ID:", new_artistid) else: # senao existir da erro print("\nERRO! O Album nao existe!") else: # caso escolha uma outro opcao da erro print("\nEscolha uma opcao valida!") except sqlite3.IntegrityError: # qualquer outro erro que possa acontecer print("\nERRO! Impossivel ALTERAR o Album!") finally: db.closedb()
def __init__(self, event, config): db.__init__(self, event, config) client = MongoClient(self.config('db_address')) self.__db = client.shore
def show_musics(self): # Funcao para listar as musicas db.__init__() pergunta = input( "\n1.Listar TODAS as Musicas | 2.Listar POR LETRA/NOME as Musicas:" ) # Uma pergunta feita para saber se pretende listar tudo ou por nome/letra if pergunta == '1': # se escolher todas as musicas db.cursor.execute( "select TrackId, Name, AlbumId, GenreId, Composer, Milliseconds, Bytes, UnitPrice from tracks limit 00,5000;" ) self.results = db.cursor.fetchall() view.apresentacao_dados_musicas( ) # view para ver como os dados da musica sao apresentados for i, row in enumerate( self.results, start=1 ): # vai numerar os resultados da musica a começar do 1 print(row) if i % 20 == 0: # if para apenas mostrar 20 musicas de cada vez e enter para listar mais x = input( "\nPressione 'ENTER' para listar mais ou 'S' para sair!:" ) if x == '': continue elif x == 'S' or x == 's': break elif x != 'S' or x == 's': print("\nOPCAO INVALIDA!\n") break elif pergunta == '2': # opcao de listar por letra/nome askLetter = input("\nListar TODAS as 'Musicas' pela LETRA/NOME:") db.cursor.execute("Select Name FROM tracks WHERE Name like'" + askLetter + "%'") exists1 = db.cursor.fetchall( ) # serve para verificar se existe a musica na bd if exists1: # se o nome da musica existir na bd continua db.cursor.execute( "Select TrackId, Name, AlbumId, GenreId, Composer, Milliseconds, Bytes, UnitPrice FROM tracks WHERE Name like'" + askLetter + "%'") self.results = db.cursor.fetchall() view.apresentacao_dados_musicas( ) # view para ver como os dados da musica sao apresentados for i, row in enumerate( self.results, start=1 ): # vai numerar os resultados da musica a começar do 1 print(row) if i % 10 == 0: # if para apenas mostrar 10 musicas de cada vez e enter para listar mais x = input( "\nPressione 'ENTER' para listar mais ou 'S' para sair!:" ) if x == '': continue elif x == 'S' or x == 's': break elif x != 'S' or x == 's': print("\nOPCAO INVALIDA!\n") break else: # se a musica nao existir print("\nERRO! A Musica", askLetter, "nao existe!") else: # uma opcao diferente das disponiveis print("\nESCOLHA UMA OPCAO VALIDA!\n")
def alterar_musics(self): # Funcao para modificar os dados de cada musica db.__init__() print("\nEsta prestes a ALTERAR dados da tabela 'Musicas'") view.escolha_operacao() # view para ver as escolhas de operacao alt1 = input("\nEscolha Opcao: ") try: with db.connection: if alt1 == '1': # a escolha um para alterar o nome da musica self.Name = input( " \nInsira o Nome da Musica que pretende alterar: ") db.cursor.execute( '''SELECT Name FROM tracks WHERE Name = ? ''', (self.Name, )) exists1 = db.cursor.fetchall() if exists1: # se existir o nome da musica pode colocar o novo nome new_name = input("Insira o NOVO Nome da Musica: ") if new_name != '': # nome introduzido altera o nome db.cursor.execute( '''SELECT Name FROM tracks WHERE Name = ? ''', (new_name, )) exists = db.cursor.fetchall() else: # nome vazio da erro print("ERRO! Tem de inserir um NOME!") return if not exists: # se nao existir o novo nome na bd e alterado db.cursor.execute( '''UPDATE tracks SET Name = ? WHERE Name = ? ''', (new_name, self.Name)) db.getcommit() print( "\nO Nome da Musica foi alterado com sucesso!") print("A Musica", self.Name, "possui um novo Nome:", new_name) else: # se o novo nome ja existe da erro print("\nERRO! A Musica", new_name, "ja existe!") else: # se a musica nao existir na bd print("\nERRO! A Musica", self.Name, "nao existe!") elif alt1 == '2': # se escolher a operacao de mudar id do artista self.Name = input( "\nInsira o Nome da Musica que pretende alterar o ID do Album: " ) db.cursor.execute( '''SELECT Name FROM tracks WHERE Name = ? ''', (self.Name, )) exists = db.cursor.fetchall( ) # guarda o nome da musica para ver se existe na bd if exists: # se existir pode continuar new_albumid = input("Insira o NOVO ID do Album: ") db.cursor.execute( '''UPDATE tracks SET ArtistId = ? WHERE Name = ? ''', (new_albumid, self.Name)) db.getcommit() print("\nID do Album alterado com sucesso!") print("A Musica", self.Name, "possui um novo Album com o ID:", new_albumid) else: # senao existir da erro print("\nERRO! A Musica nao existe!") elif alt1 == '3': # se escolher a operacao de mudar id do genero self.Name = input( "\nInsira o Nome da Musica que pretende alterar o ID do Genero: " ) db.cursor.execute( '''SELECT Name FROM tracks WHERE Name = ? ''', (self.Name, )) exists = db.cursor.fetchall( ) # guardar o nome da musica para ver se existe na bd if exists: # se existir pode continuar new_genreid = input("Insira o NOVO ID do Genero: ") db.cursor.execute( '''UPDATE tracks SET GenreId = ? WHERE Name = ? ''', (new_genreid, self.Name)) db.getcommit() print("\nID do Genero alterado com sucesso!") print("A Musica", self.Name, "possui um novo Genero com o ID:", new_genreid) else: # senao existir da erro print("\nERRO! A Musica nao existe!") elif alt1 == '4': # se escolher a operacao de mudar o compositor self.Name = input( "\nInsira o Nome da Musica que pretende alterar o Compositor: " ) db.cursor.execute( '''SELECT Name FROM tracks WHERE Name = ? ''', (self.Name, )) exists = db.cursor.fetchall() if exists: # se existir pode continuar new_composer = input("Insira o NOVO Compositor: ") db.cursor.execute( '''UPDATE tracks SET Composer = ? WHERE Name = ? ''', (new_composer, self.Name)) db.getcommit() print("\nCompositor alterado com sucesso!") print(" A Musica", self.Name, "possui um novo Compositor:", new_composer) else: # senao existir da erro print("\nERRO! A Musica nao existe!") elif alt1 == '5': # se escolher a operacao de mudar os milisegundos self.Name = input( "\nInsira o Nome da Musica que pretende alterar os MiliSegundos: " ) db.cursor.execute( '''SELECT Name FROM tracks WHERE Name = ? ''', (self.Name, )) exists = db.cursor.fetchall() if exists: # se existir pode continuar new_milliseconds = input( " Insira o NOVO Tempo MiliSegundos: ") db.cursor.execute( '''UPDATE tracks SET Milliseconds = ? WHERE Name = ? ''', (new_milliseconds, self.Name)) db.getcommit() print("\nMiliSegundos alterado com sucesso!") print("A Musica", self.Name, "possui um novo Tempo MiliSegundos:", new_milliseconds) else: # senao existir da erro print("\nERRO! A Musica nao existe!") elif alt1 == '6': # se escolher a operacao de mudar os bytes self.Name = input( "\nInsira o Nome da Musica que pretende alterar os Bytes: " ) db.cursor.execute( '''SELECT Name FROM tracks WHERE Name = ? ''', (self.Name, )) exists = db.cursor.fetchall() if exists: # se existir pode continuar new_bytes = input("Insira o NOVO Tamanho Bytes: ") db.cursor.execute( '''UPDATE tracks SET Bytes = ? WHERE Name = ? ''', (new_bytes, self.Name)) db.getcommit() print("\nBytes alterado com sucesso!") print(" A Musica", self.Name, "possui um novo Tamanho Bytes:", new_bytes) else: # senao existir da erro print("\nERRO! A Musica nao existe!") elif alt1 == '7': # se escolher a operacao de mudar o preco unitario self.Name = input( "\nInsira o Nome da Musica que pretende alterar o Preco Unitario: " ) db.cursor.execute( '''SELECT Name FROM tracks WHERE Name = ? ''', (self.Name, )) exists = db.cursor.fetchall() if exists: # se existir pode continuar new_unitprice = input("Insira o NOVO Preco Unitario: ") db.cursor.execute( '''UPDATE tracks SET UnitPrice = ? WHERE Name = ? ''', (new_unitprice, self.Name)) db.getcommit() print("\nPreco Unitario alterado com sucesso!") print("A Musica", self.Name, "possui um novo Preco Unitario:", new_unitprice) else: # senao existir da erro print("\nERRO! A Musica nao existe!") else: # caso escolha uma outro opcao da erro print("\nEscolha uma opcao valida!") except sqlite3.IntegrityError: # qualquer outro erro que possa acontecer print("\nERRO! Impossivel ALTERAR a Musica!") finally: db.closedb()
def inserir_musics(self): # Funcao para inserir novas musicas db.__init__() print("\nEsta prestes a INSERIR dados na tabela 'Musicas'.") while True: # ciclo while para pedir informacoes da musica ao utilizador try: self.Name = input("\nNome da Musica: ") self.AlbumId = int(input("ID do Album: ")) self.MediaTypeId = int(input("ID MediaType: ")) self.GenreId = int(input("ID do Genero: ")) self.Composer = input(str("Compositor: ")) self.Milliseconds = int(input("Milisegundos: ")) self.Bytes = int(input("Bytes: ")) self.UnitPrice = float(input("Preco Unidade: ")) if self.Name == '' or self.Name == ' ': # nome vazio da erro print("\nERRO! INSIRA O NOME DA MUSICA!") break elif self.MediaTypeId == '' or self.MediaTypeId == ' ': # mediatype vazio da erro print("\nERRO! INSIRA O MEDIA TYPE DA MUSICA!") break elif self.Milliseconds == '' or self.Milliseconds == ' ': # milisegundos vazio da erro print("\nERRO! INSIRA O TEMPO MILISEGUNDOS DA MUSICA!") break elif self.UnitPrice == '' or self.UnitPrice == ' ': # preco unitario vazio da erro print("\nERRO! INSIRA O PRECO UNITARIO DA MUSICA!") break except ValueError as error: # qualquer outro erro que possa acontecer print("\nErro de Parametro! Valor Inteiro/Decimal/Vazio!") print("Erro:", error) break else: # continua senao houver erros nenhums try: with db.connection: db.__init__() db.cursor.execute( '''INSERT INTO tracks(Name, AlbumId, MediaTypeId, GenreId, Composer, Milliseconds, Bytes, UnitPrice) VALUES(?,?,?,?,?,?,?,?)''', (self.Name, self.AlbumId, self.MediaTypeId, self.GenreId, self.Composer, self.Milliseconds, self.Bytes, self.UnitPrice)) db.getcommit() print( "\nDados inseridos com sucesso na tabela 'Musicas' da base de dados." ) print("\nNome:", self.Name) print("ID do Album:", self.AlbumId) print("ID MediaType:", self.MediaTypeId) print("ID Genero:", self.GenreId) print("Compositor:", self.Composer) print("Milisegundos:", self.Milliseconds) print("Bytes:", self.Bytes) print("Preco Unidade:", self.UnitPrice) except sqlite3.IntegrityError: # qualquer outro erro que possa acontecer print("\nERRO! Impossivel inserir Musica!") print(sqlite3.IntegrityError()) finally: db.closedb() # fecha a bd
def __init__(self, event, config): db.__init__(self, event, config) client = MongoClient(self.config('db_address')) self.__db = client.shoreGridFS self.__fs = gridfs.GridFS(self.__db)