seitime-frappe/webnotes/app.py
2013-09-16 18:59:39 +05:30

58 lines
No EOL
1.5 KiB
Python

import sys, os
sys.path.extend(["..", "../app", "../lib"])
from werkzeug.wrappers import Request, Response
from werkzeug.local import LocalManager
import mimetypes
import webnotes
import webnotes.handler
import webnotes.auth
import webnotes.webutils
local_manager = LocalManager([webnotes.local])
@Request.application
def application(request):
path = os.path.join("public", request.path[1:])
if os.path.exists(path) and not os.path.isdir(path) and not path.endswith(".py"):
with open(path, "r") as static:
content = static.read()
response = Response()
response.response = content
response.headers["Content-type"] = mimetypes.guess_type(path)[0]
return response
else:
webnotes.local.request = request
webnotes.init()
webnotes.local.form_dict = webnotes._dict({ k:v[0] if isinstance(v, (list, tuple)) else v \
for k, v in (request.form or request.args).iteritems() })
webnotes.local._response = Response()
try:
webnotes.http_request = webnotes.auth.HTTPRequest()
except webnotes.AuthenticationError, e:
pass
# cookies
print request.form
if webnotes.form_dict.cmd:
webnotes.handler.handle()
else:
webnotes.webutils.render(webnotes.request.path[1:])
return webnotes._response
application = local_manager.make_middleware(application)
if __name__ == '__main__':
import sys
from werkzeug.serving import run_simple
run_simple('localhost', 8000, application, use_reloader=True, use_debugger=True, use_evalex=True)