개정판 7f1181fd
issue #000: upload WebApi.py
DTI_PID/DTI_PID/WebApi/WebApi.py | ||
---|---|---|
1 |
# _*_ coding: utf-8 _*_ |
|
2 | ||
3 |
import sqlite3 |
|
4 |
from flask import Flask |
|
5 |
app = Flask(__name__) |
|
6 | ||
7 |
DATABASE = 'C:\\ProgramData\\Digital PID\\App.db' |
|
8 | ||
9 |
def get_db(): |
|
10 |
db = getattr(Flask, '_database', None) |
|
11 |
if db is None: |
|
12 |
db = Flask._database = sqlite3.connect(DATABASE) |
|
13 |
db.row_factory = make_dicts |
|
14 | ||
15 |
return db |
|
16 | ||
17 |
def query_db(query, args=(), one=False): |
|
18 |
cur = get_db().execute(query, args) |
|
19 |
rv = cur.fetchall() |
|
20 |
cur.close() |
|
21 |
return (rv[0] if rv else None) if one else rv |
|
22 | ||
23 |
def make_dicts(cursor, row): |
|
24 |
return dict((cursor.description[idx][0], value) |
|
25 |
for idx, value in enumerate(row)) |
|
26 | ||
27 | ||
28 |
@app.teardown_appcontext |
|
29 |
def close_connection(exception): |
|
30 |
db = getattr(Flask, '_database', None) |
|
31 |
if db is not None: |
|
32 |
db.close() |
|
33 |
Flask._database = None |
|
34 | ||
35 |
app.logger.debug('close connection') |
|
36 | ||
37 | ||
38 |
@app.route('/') |
|
39 |
def hello_world(): |
|
40 |
configs = None |
|
41 |
for config in query_db('select * from Configuration'): |
|
42 |
if configs is None: |
|
43 |
configs = config['Section'] + ',' + config['Key'] + ',' + config['Value'] |
|
44 |
else: |
|
45 |
configs += config['Section'] + ',' + config['Key'] + ',' + config['Value'] + '\n' |
|
46 | ||
47 |
return configs |
|
48 | ||
49 |
@app.route('/main') |
|
50 |
def main(): |
|
51 |
return 'Main Page' |
|
52 | ||
53 |
@app.route('/user/id/<int:userId>') |
|
54 |
def showUserProfileById(userId): |
|
55 |
return 'USER ID : %d' % userId |
|
56 | ||
57 |
@app.route('/user/<username>') |
|
58 |
def showUserProfile(username): |
|
59 |
app.logger.debug('RETRIEVE DATA - USER ID : %s' % username) |
|
60 |
app.logger.debug('RETRIEVE DATA - Check Compelete') |
|
61 |
app.logger.warn('RETRIEVE DATA - Warning... User Not Found.') |
|
62 |
app.logger.error('RETRIEVE DATA - ERR! User unauthenification.') |
|
63 |
return 'USER : %s' % username |
|
64 | ||
65 |
if __name__ == '__main__': |
|
66 |
app.run() |
내보내기 Unified diff