py.lib

Yohn Y. 2019-09-30 Parent:5236a9505448

8:a1729effde3c Go to Latest

py.lib/awNet/webapp/win.py

. Убиваем ненужное

History
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