Estoy comenzando el desarrollo web de Python, y he elegido Bottle como mi marco de referencia.creando subproyectos en botella
Estoy tratando de tener una estructura de proyecto que sea modular, ya que puedo tener una aplicación 'núcleo' que tiene módulos construidos a su alrededor, donde estos módulos pueden habilitarse/deshabilitarse durante la configuración (o sobre la marcha, si es posible ... no estoy seguro de cómo configurarlo tho).
Mi clase 'principal' es el siguiente:
from bottle import Bottle, route, run
from bottle import error
from bottle import jinja2_view as view
from core import core
app = Bottle()
app.mount('/demo', core)
#@app.route('/')
@route('/hello/<name>')
@view('hello_template')
def greet(name='Stranger'):
return dict(name=name)
@error(404)
def error404(error):
return 'Nothing here, sorry'
run(app, host='localhost', port=5000)
Mi 'subproyecto' (es decir, módulo) es la siguiente:
from bottle import Bottle, route, run
from bottle import error
from bottle import jinja2_view as view
app = Bottle()
@app.route('/demo')
@view('demographic')
def greet(name='None', yob='None'):
return dict(name=name, yob=yob)
@error(404)
def error404(error):
return 'Nothing here, sorry'
Cuando voy a http://localhost:5000/demo
en mi navegador, se muestra una 500 error La salida desde el servidor de botella es:
localhost - - [24/Jun/2012 15:51:27] "GET/HTTP/1.1" 404 720
localhost - - [24/Jun/2012 15:51:27] "GET /favicon.ico HTTP/1.1" 404 742
localhost - - [24/Jun/2012 15:51:27] "GET /favicon.ico HTTP/1.1" 404 742
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/bottle-0.10.9-py2.7.egg/bottle.py", line 737, in _handle
return route.call(**args)
File "/usr/local/lib/python2.7/dist-packages/bottle-0.10.9-py2.7.egg/bottle.py", line 582, in mountpoint
rs.body = itertools.chain(rs.body, app(request.environ, start_response))
TypeError: 'module' object is not callable
la estructura de carpetas es:
index.py
views (folder)
|-->hello_template.tpl
core (folder)
|-->core.py
|-->__init__.py
|-->views (folder)
|--|-->demographic.tpl
no tengo idea de lo que estoy haciendo (mal) :)
Alguien tiene alguna idea de cómo esto puede/debe hacerse?
Gracias!
ahhh ok, Gotcha. funciona ahora :) Gracias Rohan! – Jarrett