modularisation
[restcoda.git] / objetsql.py
CommitLineData
30e64411
TN
1#!/usr/bin/python
2# -*- coding: utf-8 -*-
3
4from jinja import Environment, FileSystemLoader
5ejinja = Environment(loader=FileSystemLoader('/home/thomas/public_html/'))
6
7from pymssql import connect
8
9from paste.request import parse_formvars
10
11import sys
12sys.path.append('/home/thomas/public_html/')
13import rest_config
14
15class objetsql(object):
16 """objet de base : dispose d'un accès à MS-SQL (lire les données) et d'un accès à jinja (rendu des données)"""
17 def __init__(self, environ):
18 self.environ = environ
19 parse_formvars(environ) # extraction des variables de query_string et POST
20 self.filters = environ['paste.parsed_formvars'][0].dict_of_lists() # puis traduction en dictionnaire {var1:[val1,val2], ...}
21 def template(self,template):
22 self.outputformat = self.environ['wsgiorg.routing_args'][1].get('format','xml')
23 return ejinja.get_template('%s.%s' % (template,self.outputformat))
24 def cursor(self):
25 if not hasattr(self,'db_connect'):
26 self.db_connect = connect(host=rest_config.host,user=rest_config.user,password=rest_config.password,database=rest_config.database)
27 if not hasattr(self,'db_cursor'):
28 self.db_cursor = self.db_connect.cursor()
29 return self.db_cursor
30 def __del__(self):
31 # coupe la connexion à MSSQL à la mort de l'objet (normalement ça se fait tout seul mais j'en suis pas sûr sûr)
32 if hasattr(self,'db_connect'):
33 db_connect.close()
34