2、创建Bottle应用

  上个教程我们已经简单地创建了一个web项目,在配置路由的时候route()函数有一个app参数我们并没有用到,它默认使用的是default_app()。但是我们的网站可能包含很多应用,如博客系统,投票系统,这个时候就要使用Bottle对象来创建多个app了。
1.创建一个app

from bottle import Bottle, run

root = Bottle()
@root.route('/hello')
def index():
    return '<b>Hello World!</b>'

if __name__ == '__main__':
    run(app=root, host='localhost', port=8080, debug=True)
  • Bottle对象的成员:hook(钩子)

我的理解hook(钩子)就是在特定时间运行的函数。目前Bottle实现了三个hook它们分别是before_request、after_request、app_reset。before_request在每个请求之前执行一次,after_request在每个请求之后执行一次,app_reset每当调用Bottle.reset()时调用。

成员描述
add_hook(name, func)将函数附加到hook上。
remove_hook(name, func)删除已附加到hook上的函数
trigger_hook(_Bottle__name, *args, **kwargs)触发hook并返回结果列表。
hook(name)一个装饰器,可以将被装饰的函数附加到hook上。是装饰器版的add_hook()。
reset(route=None)重置所有路由并清除所有缓存。如果给定ID或route对象,则只影响该特定路由。
from bottle import Bottle, run

root = Bottle()

@root.hook("before_request")
def hook1():
    print("hook1 has run before request")

@root.route('/hello')
def index():
    return '<b>Hello World!</b>'


if __name__ == '__main__':
    run(app=root, host='localhost', port=8080, debug=True)

在这里插入图片描述

  • Bottle对象的成员:mount(prefix, app, **options)

功能是将应用程序挂载到特定的URL前缀。
参数:

  1. prefix:前缀path或挂载点。
  2. app:要挂载的app

来自父应用程序的插件不能应用于已挂载的子应用程序的路由。如果您需要子应用程序中的插件,请分别安装它们。
虽然可以在前缀path中使用路径通配符,但强烈建议不要使用。
如果您想通过/prefix和/prefix/访问子应用程序的根,请考虑添加一条重定向到父应用程序的307路由。

from bottle import Bottle

root = Bottle()
blog = Bottle()
root.mount('/blog', blog)   # 将blog应用挂载到root中

@root.route('/hello')
def index():
    return '<b>Hello World!</b>'

@blog.route('/hello')
def hello():
    return '<b>Hello Blog!</b>'

if __name__ == '__main__':
    root.run(host='localhost', port=8080, debug=True)

虽然配置了两个/hello,但这两个/hello实际的url是不同的
在这里插入图片描述
在这里插入图片描述

  • Bottle对象的成员:merge(routes)
    将另一个Bottle应用程序的路由或者将Route对象列表合并到此应用程序中。
  • Bottle对象的成员:插件
成员描述
install(plugin)将插件添加到插件列表中,并准备将其应用于此应用程序的所有路由。插件可以是简单的装饰器,也可以是实现插件API的对象。
uninstall(plugin)卸载插件。传递一个实例来删除特定的插件,传递一个类型对象来删除与该类型匹配的所有插件,传递一个字符串来删除具有匹配name属性的所有插件,传递一个True来删除所有插件。返回已删除插件的列表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值