py.lib
2019-09-30
Parent:5236a9505448
py.lib/awNet/webapp/win.py
. Убиваем ненужное
| awgur@2 | 1 # -*- coding: utf-8 -*- |
| awgur@2 | 2 # --- |
| awgur@2 | 3 # Модуль среды приложений для Windows |
| awgur@2 | 4 # --- |
| awgur@2 | 5 |
| awgur@2 | 6 from bottle import Bottle as App, request as Req, response as Ans, SimpleTemplate as BottleTemplate, abort as Abort |
| awgur@2 | 7 from os.path import dirname, abspath as pAbs, split as pSplit, join as pJoin |
| awgur@2 | 8 |
| awgur@2 | 9 # --- CLASSES --- |
| awgur@2 | 10 class ReqEnv: |
| awgur@2 | 11 def __init__(self): |
| awgur@2 | 12 self.urlBase = Req.environ.get('SCRIPT_NAME', '') |
| awgur@2 | 13 |
| awgur@2 | 14 def getUrl(self, url): |
| awgur@2 | 15 url = str(url) |
| awgur@2 | 16 buf = self.urlBase |
| awgur@2 | 17 buf += url if url.startswith('/') else '/' + url |
| awgur@2 | 18 return buf |
| awgur@2 | 19 |
| awgur@2 | 20 def __getitem__(self, key): |
| awgur@2 | 21 return Req.environ[key] |
| awgur@2 | 22 |
| awgur@2 | 23 def __iter__(self): |
| awgur@2 | 24 for key in Req.environ.keys(): |
| awgur@2 | 25 yield key |
| awgur@2 | 26 |
| awgur@2 | 27 @staticmethod |
| awgur@2 | 28 def abort(*a, **ka): |
| awgur@2 | 29 Abort(*a, **ka) |
| awgur@2 | 30 |
| awgur@2 | 31 @staticmethod |
| awgur@2 | 32 def get(self): |
| awgur@2 | 33 return Req.GET |
| awgur@2 | 34 |
| awgur@2 | 35 @staticmethod |
| awgur@2 | 36 def post(): |
| awgur@2 | 37 return Req.POST |
| awgur@2 | 38 |
| awgur@2 | 39 class Env: |
| awgur@2 | 40 def __init__(self, scFile): |
| awgur@2 | 41 self.wd = pSplit(dirname(pAbs(scFile)))[0] |
| awgur@2 | 42 self.static = pJoin(self.wd, 'static') |
| awgur@2 | 43 |
| awgur@2 | 44 def http(self, tplName): |
| awgur@2 | 45 return BottleTemplate(name=pJoin(self.wd, 'http', '%s.html' % tplName)).render |
| awgur@2 | 46 |
| awgur@2 | 47 def db(self): |
| awgur@2 | 48 """ |
| awgur@2 | 49 Путь к базе SQLite, иные типы БД дожны иметь более |
| awgur@2 | 50 серьёзные средства авторизации |
| awgur@2 | 51 """ |
| awgur@2 | 52 return pJoin(self.wd, 'db.sqlite') |
| awgur@2 | 53 |
| awgur@2 | 54 @staticmethod |
| awgur@2 | 55 def httpTpl(buf): |
| awgur@2 | 56 return BottleTemplate(buf).render |
| awgur@2 | 57 |
| awgur@2 | 58 @staticmethod |
| awgur@2 | 59 def app(): |
| awgur@2 | 60 return App() |
| awgur@2 | 61 |
| awgur@2 | 62 @staticmethod |
| awgur@2 | 63 def appRun(app): |
| awgur@2 | 64 app.run(server='cgi') |
| awgur@2 | 65 |
| awgur@2 | 66 # --- PROCS --- |
| awgur@2 | 67 def runApp(app): |
| awgur@2 | 68 Env.appRun(app) |
| awgur@2 | 69 |
| awgur@2 | 70 def Template(buf): |
| awgur@2 | 71 return Env.httpTpl(buf) |
| awgur@2 | 72 |