Я только начинаю веб-разработку Python и выбрал «Бутылку» в качестве моей рамки выбора.создание подпроектов в бутылке
Я пытаюсь иметь структуру проекта, которая является модульной, поскольку я могу иметь «основное» приложение, в котором есть модули, построенные вокруг него, где эти модули могут быть включены/отключены во время установки (или «на лету», если возможно ... не уверен, как я это установил.
Мой 'главный' класс является следующее:
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)
Мой 'подпроект' (т.е. модуль) заключается в следующем:
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'
Когда я иду в http://localhost:5000/demo
в моем браузере, он показывает 500. Выход с сервера бутылки:
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
структура папок:
index.py
views (folder)
|-->hello_template.tpl
core (folder)
|-->core.py
|-->__init__.py
|-->views (folder)
|--|-->demographic.tpl
Я понятия не имею, что я делаю (неправильно) :)
Кто-нибудь есть идеи, как это можно/нужно сделать?
Спасибо!
аааа ок, Гоча. работает сейчас :) Спасибо Рохану! – Jarrett