Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- # -*- coding: UTF-8 -*-
- ####
- #### Jednoduchá aplikace pro práci s databází sklad.db
- ####
- ## načtení modulu pro práci s databází
- import MySQLdb
- ### Deklarace globálních proměnných
- host = "192.168.11.226"
- user = "student"
- password = "12345"
- db = "test" ### databáze
- con = None ### pomocná proměnná pro connection (spojení na databázi)
- saved = True ### pomocná proměnná hlídající zda byly uloženy (commitnuty) změny
- ###### Definice funkcí
- def menu():
- '''
- Funkce vytiskne menu a čeká na zadání volby.
- Navrací: hodnotu volby z vybraných hodnot
- '''
- volby = ["Q","L", "I", "S"]
- volba = ""
- while (not volba in volby):
- print "\n M E N U (%s):" % (saved)
- print "~~~~~~~~~~~~~~~~~~~~~~~~~"
- print " L ... List all "
- print " I ... Insert data"
- print " S ... Save (commit)"
- print " Q ... Quit application \n"
- volba = raw_input("Enter your option: ")
- volba = volba.upper()
- print "You've chosen '%c'" % volba
- print
- return volba
- def vypis(cursor):
- """
- Funkce prostě vypíše obsah databáze, přičemž výpis naformátuje.
- """
- query = "SELECT datum, transakce, symbol, mnozstvi, cena FROM zbozi ORDER BY datum DESC"
- cursor.execute(query)
- rows = cursor.fetchall()
- for row in rows:
- print u" {0:>11} {1:>10} {2:>5} {3:>6.2f} {4:>6.2f}".format(row[0],row[1],row[2],row[3],row[4])
- print
- def vlozeni(cursor):
- """
- funkce pro vložení zadaných dat do databáze na daném cursoru
- :param cursor:
- :return: navratovy kod kursoru
- """
- symbol = raw_input("Symbol: ")
- mnozstvi = float(raw_input("Mnozství: "))
- cena = float(raw_input("Cena: "))
- query = "INSERT INTO zbozi (datum, transakce, symbol, mnozstvi, cena) VALUES (CURDATE(),'BUY','%s',%s,%s)" % (symbol, mnozstvi,cena)
- return cursor.execute(query)
- ####### HLAVNÍ ČÁST PROGRAMU ###########################################################
- #######
- ### připojení se k databázi na serveru host, jako uzivatel user s heslem
- con = MySQLdb.connect(host, user, password, db )
- # vytvoříme nový Cursor ukazující do otevřené databáze
- cur = con.cursor()
- # vytvoření tabulky v databázi
- cur.execute('''CREATE TABLE IF NOT EXISTS zbozi
- (datum text, transakce text, symbol text, mnozstvi real, cena real);''');
- ##### Hlavní programová smyčka
- while True:
- ### vytiskneme menu a získáme volbu od uživatele
- option = menu()
- ### provedeme akci na základě uživatelovy volby "option"
- if (option == "L"):
- ### vypis dat z databaze
- vypis(cur)
- elif (option == "I"):
- ### vkladame data
- vlozeni(cur)
- saved = False
- vypis(cur)
- elif (option == "S"):
- con.commit()
- saved = True
- print "Changes commited!"
- elif (option == "Q"):
- ### uživatel si přeje ukončit
- print "Application is going to QUIT!"
- ### opuštění nekonečné smyčky while()
- break
- ##### Uzavření spojení na databázi
- if con:
- con.close()
- ###################
- ######################## KONEC SOUBORU #############################
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement