Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 2c96b4a5

Přidáno uživatelem David Friesecký před asi 4 roky(ů)

Re #8471 - Implemented DB communication
- implemented operations create, read, update, delete
- created file with constants contains name of DB file and default values in DB

Zobrazit rozdíly:

src/constants.py
1
DATABASE_FILE = r"C:\sqlite\db\pythonsqlite.db"
2

  
3
ROOT_CA_ID = 1
4
INTERMEDIATE_CA_ID = 2
5
CERTIFICATE_ID = 3
6

  
7
CA_ID = 1
8
SSL_ID = 2
9
SIGNATURE_ID = 3
10
AUTHENTICATION_ID = 4
src/impl/db_manager.py
1
import sqlite3
2
from sqlite3 import Error
3

  
4
from ..constants import DATABASE_FILE
5
from ..dao.repository import IRepository
6

  
7

  
8
class DBManager(IRepository):
9

  
10
    def create(self, sql: str, *args) -> bool:
11
        conn = None
12
        try:
13
            sql: str = args[0]
14
            values = args[1:]
15

  
16
            conn = sqlite3.connect(DATABASE_FILE)
17
            c = conn.cursor()
18
            c.execute(sql, values)
19
            conn.commit()
20
            c.close()
21
        except Error as e:
22
            print(e)
23
            return False
24
        finally:
25
            if conn:
26
                conn.close()
27
        return True
28

  
29
    def read(self, sql: str, item_id: int = None) -> list:
30
        conn = None
31
        try:
32
            conn = sqlite3.connect(DATABASE_FILE)
33
            c = conn.cursor()
34

  
35
            if item_id is not None:
36
                c.execute(sql, item_id)
37
            else:
38
                c.execute(sql)
39

  
40
            records = c.fetchall()
41
            c.close()
42
        except Error as e:
43
            print(e)
44
            return []
45
        finally:
46
            if conn:
47
                conn.close()
48
        return records
49

  
50
    def update(self, sql: str, item_id: int, *args) -> bool:
51
        conn = None
52
        try:
53
            values = list(args)
54
            values.append(item_id)
55

  
56
            conn = sqlite3.connect(DATABASE_FILE)
57
            c = conn.cursor()
58
            c.execute(sql, values)
59
            conn.commit()
60
            c.close()
61
        except Error as e:
62
            print(e)
63
            return False
64
        finally:
65
            if conn:
66
                conn.close()
67
        return True
68

  
69
    def delete(self, sql: str, item_id: int) -> bool:
70
        conn = None
71
        try:
72
            conn = sqlite3.connect(DATABASE_FILE)
73
            c = conn.cursor()
74
            c.execute(sql, (item_id,))
75
            conn.commit()
76
            c.close()
77
        except Error as e:
78
            print(e)
79
            return False
80
        finally:
81
            if conn:
82
                conn.close()
83
        return True

Také k dispozici: Unified diff