Advertisement
Guest User

Untitled

a guest
Mar 4th, 2016
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.28 KB | None | 0 0
  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3.  
  4. ####
  5. #### Jednoduchá aplikace pro práci s databází sklad.db
  6. ####
  7.  
  8. ## načtení modulu pro práci s databází
  9. import MySQLdb
  10.  
  11. ### Deklarace globálních proměnných
  12. host = "192.168.11.226"
  13. user = "student"
  14. password = "12345"
  15. db = "test" ### databáze
  16. con = None ### pomocná proměnná pro connection (spojení na databázi)
  17. saved = True ### pomocná proměnná hlídající zda byly uloženy (commitnuty) změny
  18.  
  19. ###### Definice funkcí
  20. def menu():
  21. '''
  22. Funkce vytiskne menu a čeká na zadání volby.
  23. Navrací: hodnotu volby z vybraných hodnot
  24. '''
  25. volby = ["Q","L", "I", "S"]
  26. volba = ""
  27. while (not volba in volby):
  28. print "\n M E N U (%s):" % (saved)
  29. print "~~~~~~~~~~~~~~~~~~~~~~~~~"
  30. print " L ... List all "
  31. print " I ... Insert data"
  32. print " S ... Save (commit)"
  33. print " Q ... Quit application \n"
  34. volba = raw_input("Enter your option: ")
  35. volba = volba.upper()
  36. print "You've chosen '%c'" % volba
  37. print
  38. return volba
  39.  
  40. def vypis(cursor):
  41. """
  42. Funkce prostě vypíše obsah databáze, přičemž výpis naformátuje.
  43. """
  44. query = "SELECT datum, transakce, symbol, mnozstvi, cena FROM zbozi ORDER BY datum DESC"
  45. cursor.execute(query)
  46.  
  47. rows = cursor.fetchall()
  48. for row in rows:
  49. 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])
  50. print
  51.  
  52. def vlozeni(cursor):
  53. """
  54. funkce pro vložení zadaných dat do databáze na daném cursoru
  55. :param cursor:
  56. :return: navratovy kod kursoru
  57. """
  58. symbol = raw_input("Symbol: ")
  59. mnozstvi = float(raw_input("Mnozství: "))
  60. cena = float(raw_input("Cena: "))
  61. query = "INSERT INTO zbozi (datum, transakce, symbol, mnozstvi, cena) VALUES (CURDATE(),'BUY','%s',%s,%s)" % (symbol, mnozstvi,cena)
  62. return cursor.execute(query)
  63.  
  64. ####### HLAVNÍ ČÁST PROGRAMU ###########################################################
  65. #######
  66.  
  67. ### připojení se k databázi na serveru host, jako uzivatel user s heslem
  68.  
  69. con = MySQLdb.connect(host, user, password, db )
  70.  
  71. # vytvoříme nový Cursor ukazující do otevřené databáze
  72. cur = con.cursor()
  73.  
  74. # vytvoření tabulky v databázi
  75. cur.execute('''CREATE TABLE IF NOT EXISTS zbozi
  76. (datum text, transakce text, symbol text, mnozstvi real, cena real);''');
  77.  
  78. ##### Hlavní programová smyčka
  79. while True:
  80. ### vytiskneme menu a získáme volbu od uživatele
  81. option = menu()
  82.  
  83. ### provedeme akci na základě uživatelovy volby "option"
  84. if (option == "L"):
  85. ### vypis dat z databaze
  86. vypis(cur)
  87. elif (option == "I"):
  88. ### vkladame data
  89. vlozeni(cur)
  90. saved = False
  91. vypis(cur)
  92. elif (option == "S"):
  93. con.commit()
  94. saved = True
  95. print "Changes commited!"
  96. elif (option == "Q"):
  97. ### uživatel si přeje ukončit
  98. print "Application is going to QUIT!"
  99. ### opuštění nekonečné smyčky while()
  100. break
  101.  
  102. ##### Uzavření spojení na databázi
  103. if con:
  104. con.close()
  105. ###################
  106. ######################## KONEC SOUBORU #############################
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement