这篇教程假设你已经把Bottle安装或者复制到你的项目目录下了。让我们从一个最基本的“Hello World”例子开始:
from bottle import route, run
@route('/hello')
def hello():
return "Hello World!"
run(host='localhost', port=8080, debug=True)
这就是全部。运行这个脚本,访问http://localhost:8080/hello然后你会在你的浏览器里看见“Hello World!”。它是这样运行的:
route()装饰器为一个URL路由绑定了一小段代码。在这个案例里,我们把/hello路由连接hello()函数。这被称作一个路由 (源自装饰器名字。译者注:原单词route大概是路由的意思) ,同时这也是这个框架最重要的概念。你可以定义你想要的任意多的路由。一个浏览器无论何时请求一个URL, 相关的函数就会被调用并且返回值将被送回浏览器。就是这么简单。
在最后一行调用run()启动了一个内置的开发服务器。它在localhost的8080端口上运行并且在你按Ctrl+C之前一直为请求服务。你可以稍后再选择一个服务器后端,但现在,一个开发服务器是我们所需要的全部。它完全不用安装并且是一种难以置信的在本地测试启动运行你的应用的不折腾的方法。
在整个早期开发中,Debug模式是非常有用的,但应该在公共应用中关闭它。谨记在心。
这仅仅只是一个如何用Bottle建立应用的基本概念的示范。继续阅读然后你将发现还有什么是可能实现的。
为了简易的目的,教程里的大多数例子使用一个模块级的route()装饰器去定义路由。这添加了一些路由到一个全局的“默认应用”——一个你第一次调用route()时自动生成的Bottle实例。一些其他的模块级装饰器和函数依赖于这个默认应用,但如果你更倾向于一个面向对象方法并且不介意额外的堆码,你可以创建一个分离的应用对象并替代全局的那个来使用:
from bottle import Bottle, run
app = Bottle()
@app.route('/hello')
def hello():
return "Hello World!"
run(app, host='localhost', port=8080)
在默认应用一节中,将会更进一步描述面向对象方法。现在你只需记住你还有别的选择就行了。