move app to scopes.server; rename / clean-up
This commit is contained in:
parent
265048e76a
commit
2986d426bb
7 changed files with 54 additions and 19 deletions
|
@ -1,8 +0,0 @@
|
||||||
# py-scopes/demo/app.py
|
|
||||||
|
|
||||||
def demo_app(environ, start_response):
|
|
||||||
status = '200 OK'
|
|
||||||
headers = [("Content-type", "text/plain; charset=utf-8")]
|
|
||||||
start_response(status, headers)
|
|
||||||
return ['Hello World'.encode()]
|
|
||||||
|
|
|
@ -2,8 +2,10 @@
|
||||||
|
|
||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
from os import getenv
|
from os import getenv
|
||||||
|
from scopes.server.app import demo_app, zope_app
|
||||||
|
|
||||||
load_dotenv()
|
load_dotenv()
|
||||||
|
|
||||||
server_port = getenv('SERVER_PORT', '8999')
|
server_port = getenv('SERVER_PORT', '8999')
|
||||||
|
|
||||||
|
app = zope_app
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# py-scopes/demo/server.py
|
# py-scopes/demo/demo_server.py
|
||||||
|
|
||||||
from wsgiref.simple_server import make_server
|
from wsgiref.simple_server import make_server
|
||||||
|
|
||||||
|
@ -10,3 +10,9 @@ def run(app, config):
|
||||||
httpd.serve_forever()
|
httpd.serve_forever()
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
print('Shutting down.')
|
print('Shutting down.')
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
import config
|
||||||
|
run(config.app, config)
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
# py-scopes/demo/main.py
|
|
||||||
|
|
||||||
import config
|
|
||||||
|
|
||||||
from app import demo_app
|
|
||||||
import server
|
|
||||||
|
|
||||||
server.run(demo_app, config)
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ dependencies = [
|
||||||
]
|
]
|
||||||
|
|
||||||
[project.optional-dependencies]
|
[project.optional-dependencies]
|
||||||
demo = ["python-dotenv"]
|
demo = ["python-dotenv", "zope.publisher"]
|
||||||
test = ["pytest"]
|
test = ["pytest"]
|
||||||
|
|
||||||
[tool.setuptools]
|
[tool.setuptools]
|
||||||
|
|
1
scopes/server/__init__.py
Normal file
1
scopes/server/__init__.py
Normal file
|
@ -0,0 +1 @@
|
||||||
|
"""package scopes.server"""
|
43
scopes/server/app.py
Normal file
43
scopes/server/app.py
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
# scopes.server.app
|
||||||
|
|
||||||
|
from zope.publisher.base import DefaultPublication
|
||||||
|
from zope.publisher.browser import BrowserRequest
|
||||||
|
from zope.publisher.publish import publish
|
||||||
|
|
||||||
|
|
||||||
|
def demo_app(environ, start_response):
|
||||||
|
print(f'*** environ {environ}.')
|
||||||
|
status = '200 OK'
|
||||||
|
headers = [("Content-type", "text/plain; charset=utf-8")]
|
||||||
|
start_response(status, headers)
|
||||||
|
return ['Hello World'.encode()]
|
||||||
|
|
||||||
|
|
||||||
|
def zope_app(environ, start_response):
|
||||||
|
request = BrowserRequest(environ['wsgi.input'], environ)
|
||||||
|
request.setPublication(DefaultPublication(AppRoot()))
|
||||||
|
request = publish(request, False)
|
||||||
|
response = request.response
|
||||||
|
start_response(response.getStatusString(), response.getHeaders())
|
||||||
|
return response.consumeBodyIter()
|
||||||
|
|
||||||
|
|
||||||
|
class AppRoot:
|
||||||
|
"""Zope Demo AppRoot"""
|
||||||
|
|
||||||
|
def __call__(self):
|
||||||
|
"""calling AppRoot"""
|
||||||
|
return 'At root'
|
||||||
|
|
||||||
|
def __getitem__(self, key):
|
||||||
|
def child():
|
||||||
|
"""get child"""
|
||||||
|
print(f'--- getitem {key}')
|
||||||
|
return 'getitem'
|
||||||
|
return child
|
||||||
|
|
||||||
|
def hello(self):
|
||||||
|
"""method hello"""
|
||||||
|
return 'Hello AppRoot'
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue