comparison frontend/mfrontend/db.py @ 5:3ba60dfc1d64

Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
author Michał Rudowicz <michal.rudowicz@fl9.eu>
date Sun, 27 Feb 2011 09:33:03 +0100
parents cf786ee26a22
children 27d63cac76ac
comparison
equal deleted inserted replaced
4:cf786ee26a22 5:3ba60dfc1d64
3 3
4 import sqlite3 4 import sqlite3
5 from flask import g 5 from flask import g
6 import ConfigParser 6 import ConfigParser
7 from mfrontend import utils 7 from mfrontend import utils
8 from contextlib import closing
9 import os.path
8 10
9 config = ConfigParser.SafeConfigParser() 11 config = ConfigParser.SafeConfigParser()
10 config.read('config.ini') 12 config.read('config.ini')
11 13
12 def connect_db(): 14 def connect_db():
14 g.db = sqlite3.connect(config.get('Basic','Database')) 16 g.db = sqlite3.connect(config.get('Basic','Database'))
15 17
16 def disconnect_db(): 18 def disconnect_db():
17 """Funkcja zamykająca połączenie z bazą danych""" 19 """Funkcja zamykająca połączenie z bazą danych"""
18 g.db.close() 20 g.db.close()
21
22 def init_db():
23 """Funkcja przeprowadzająca inicjalizację bazy danych zgodnie
24 z plikiem schema.sql. Na podstawie kodu ze strony
25 http://flask.pocoo.org/docs/patterns/sqlite3/#initial-schemas
26 Instalacja powiedzie się tylko wtedy, gdy w obecnym katalogu
27 nie istnieje plik '.installed'. Plik taki jest tworzony
28 po każdej instalacji, aby zapobiec operacjom na
29 istniejących bazach.
30 @return True, jeśli instalacja została wykonana,
31 False, jeśli plik '.installed' istnieje.
32 """
33 if not os.path.isfile('.installed'):
34 with open('schema.sql', 'r') as f:
35 g.db.cursor().executescript(f.read())
36 g.db.commit()
37 open('.installed', 'w').close()
38 return True
39 else:
40 return False
19 41
20 def query_db(query, args=(), one=False): 42 def query_db(query, args=(), one=False):
21 """Funkcja ułatwiająca odpytywanie bazy danych, źródło: 43 """Funkcja ułatwiająca odpytywanie bazy danych, źródło:
22 http://flask.pocoo.org/docs/patterns/sqlite3/ 44 http://flask.pocoo.org/docs/patterns/sqlite3/
23 """ 45 """
40 return False 62 return False
41 if user['password'] == utils.hashPassword(password): 63 if user['password'] == utils.hashPassword(password):
42 return True # Jeśli mamy takiego użytkownika, i hasło się zgadza 64 return True # Jeśli mamy takiego użytkownika, i hasło się zgadza
43 # Najwyraźniej jest taki użytkownik, ale hasło się nie zgadza 65 # Najwyraźniej jest taki użytkownik, ale hasło się nie zgadza
44 return False 66 return False
67
68 def register_user(username, password):
69 """Funkcja rejestrująca nowego użytkownika w systemie.
70 @param username Nazwa nowego użytkownika
71 @param password Hasło w czystym tekście, funkcja sama
72 zajmie się hashowaniem
73 """
74 return