Autorius: | Dalius Dobravolskas |
---|---|
Data: | 2009-04-23 |
WSGI specifikacija:
http://www.python.org/dev/peps/pep-0333/
Padarysime kažką panašaus į Big Picture:
Kaip atrodo paprasta WSGI aplikacija?
def simple_app(environ, start_response):
"""Simplest possible application object"""
status = '200 OK'
response_headers = [('Content-type','text/plain')]
start_response(status, response_headers)
return ['Hello world!\n']
Aplinkos izoliavimas. Naudinga, nes dažniausiai skirtingi projektai turi skirtingus reikalavimus.
sudo easy_install virtualenv
mkdir bigpicture
cd bigpicture
virtualenv .
source bin/activate
easy_install pakaitalas http://pypi.python.org/pypi/pip
easy_install pip
Naudojimas:
pip install ....
pip install -r requirements.txt
Paprasta WSGI implementacija. Ji neskirta viešam naudojimui, bet kai kas naudoja.
from wsgiref.simple_server import make_server
from bigpicture.app import simple_app
make_server('', 8080, simple_app).serve_forever()
Supaprastiname WSGI naudojimą.
from webob import Response, Request
req = Request(environ)
resp = Response()
WSGI aplikacijų Unit testing'as.
from webtest import TestApp
from bigpicture.app import simple_app
def test_get_values_show_up():
app = TestApp(simple_app)
resp = app.get('/?test=123')
assert 'test' in resp.body
Statinių failų pateikimas.
from static import Cling
simple_app = Cling('bigpicture/static')
Kaskada:
from paste.cascade import Cascade
Cascade([static_app, dynamic_app])
Paste galima rasti netgi ponį.
from paste.pony import PonyMiddleware
Galima rasti ne vieną sprendimą:
Rails tipo URL valdymas:
from routes import Mapper
from routes.middleware import RoutesMiddleware
...
map = Mapper()
map.connect(':id')
Oficialaus puslapio adreso neturiu, bet tikrai naudingas modulis.
from weberror.evalexception import EvalException
http://code.google.com/p/modwsgi/
Autorius: Graham Dumpleton
Paprasta instaliuoti.
Gerai dokumentuota.
Template'ams galima naudoti: genshi arba mako
Duombazės valdymui rekomenduoju SQLAlchemy arba naudoti tiesiog pliką DB API (Python'e jis visoms DB toks pats, išskyrus ODBC).
Pakankamai skausminga vieta autentikacija/autorizacija.
?