【发布时间】:2013-12-07 03:32:29
【问题描述】:
一直在玩https://github.com/salimane/bottle-mvc 示例。我正在尝试将路由提取到一个文件和类似于控制器文件夹的定义。我试图模拟的是 Ruby on Rails 路由/控制器行为。
为了实现这一点,我首先这样做了
app/controllers/print.py
def index(something=''):
return template('printer/index', message='')
@app.route('/', method='GET',callback=index)
@app.route('/print', method=['GET', 'POST'])
def printer():
if request.method == 'POST':
from project.models.Printer import Printer
printer = Printer()
message = printer.show_string(request.forms.get('text'))
return template('printer/index', message=message)
return template('printer/print', message='')
我做了“something=''”因为 python 在运行服务器时给了我错误。说
TypeError: index() takes no arguments (1 given)
在这个小技巧之后,服务器运行并且一切正常。
然后我对 /print 路线做了同样的事情:
app/controllers/print.py
def index(something=''):
return template('printer/index', message='')
@app.route('/', method='GET',callback=index)
def printer(something=''):
if request.method == 'POST':
from project.models.Printer import Printer
printer = Printer()
message = printer.show_string(request.forms.get('text'))
return template('printer/index', message=message)
return template('printer/print', message='')
@app.route('/print', method=['GET', 'POST'], callback=printer)
出现这个 python 错误:
SyntaxError: invalid syntax
指向最后一行 (EOF)。测试了各种组合,但我被卡住了。
OS X 10.9、Bottle 0.11.6、python 2.7
编辑:
我想我没有解释自己。
我想要的是这样的:
app/config/routes.py
@app.route('/', method='GET', callback=index)
@app.route('/print', method=['GET', 'POST'], callback=printer)
app/controllers/print.py
def index(something=''):
return template('printer/index', message='')
def printer(something=''):
if request.method == 'POST':
from project.models.Printer import Printer
printer = Printer()
message = printer.show_string(request.forms.get('text'))
return template('printer/index', message=message)
return template('printer/print', message='')
“something”参数是使其工作的解决方法,因为 python 给了我错误。
我无法将路由与 defs 分开...这是主要问题。
【问题讨论】:
标签: python model-view-controller bottle