1.1.2 老一套:"Hello World"
本教程假设你已经安装好了Bottle,接下来我们用一个简单的"Hello World"例子来开始我们的学习:
from bottle import route, run@route('/hello')def hello(): return "Hello World!" run(host='localhost', port=8080, debug=True)
双击或者在命令行下面运行这个脚本,然后用你的浏览器访问,你将会看到浏览器上面显示"Hello World!"这句话,让我们来分析一下这个脚本工作的过程:
首先,route()将它修饰的代码绑定到指定的URL.在这个例子里边,我们将"hello()"这段代码绑定到"/hello"这个路径.让指定URL访问指定代码的行为叫做路由,并且这是Bottle框架里边一个非常重要的概念.你可以自定义任何你需要的路由规则.当浏览器打开你指定的URL的时候,相对应的方法将会被调用运行并且将运行结果发给浏览器.嗯嗯,是不是很简单?
接下来,最后一行代码的run()方法将会启动一个内置的开发级服务器.它运行在本地主机"localhost"的8080端口上面,在你按下Ctrl-C组合键之前,它将会兢兢业业,鞠躬尽瘁地为你响应每一个浏览器请求.你可以选用自己喜欢的服务器软件来代替它以获得更好的服务,但是当前我们的开发有它就足够了.
"debug=True"这句代码开启了Bottle的调试模式,在早期的开发过程中,调试模式是非常有用的,但是要记得在正式发布你的应用之后要关闭调试模式.
上面是一个很简单的例子,但是它展示了Bottle的一些理念以及如何用Bottle来开发应用.继续看下去,你将会了解到Bottle还能做更多...
顺带提一下"默认应用"
为了简单起见,本教程里边的大部分例子都使用了模块级别的route()修饰器来定义路由规则.这些规则会被添加到一个全局的"默认应用"--一个第一次调用route()的时候自动创建的Bottle实例.一些其他的模块级修饰器和方法也会被关联到这个"默认应用",为了杜绝这些修饰器和方法的干扰,同时如果你想更面向对象一点而又不介意高抬贵手多打几个字,你应该创建一个独立的应用对象而不是使用这个全局的"默认应用":
from bottle import Bottle, runapp = Bottle()@app.route('/hello')def hello(): return "Hello World!"run(app, host='localhost', port=8080)
面向对象开发将会在"默认应用"部分做详细说明,你暂时只需要记住,你还有另一种方式来创建你的应用.