Api开发利器Bottle

简介: Api开发利器Bottle

前言


前面我们介绍了很多 API 开发框架,比如FastApiHug等。今天我们继续介绍一款超轻的 web 框架 Bottle,它的使用和 FlaskHug 一样简单。


呆猫


安装 Bottle


pip install bottle
复制代码


Hello World


from bottle import route, run
@route('/hello')
def hello():
    return "Hello World!"
run(host='localhost', port=8080, debug=True)


网络异常,图片无法展示
|


网络异常,图片无法展示
|


如上我们已经实现了 hello world,但是这不是面向对象的方式,我们可以使用面向对象的方式,先实例化一个 bottle 对象,然后在这个对象上进行路由等操作。


就像这样:


from bottle import Bottle, run
app = Bottle()
@app.route('/hello')
def hello():
    return "Hello World!"
run(app, host='localhost', port=8080)
复制代码


如上两种方式都可以实现 api 的开发,你可以根据自己喜好进行选择,但是个人比较推荐面向对象的写法。


路径参数


路径参数就是 URI 中的参数,我们可以通过 URI 进行参数的传递和处理。


from bottle import Bottle, run, template
app = Bottle()
@app.route('/hello')
def hello():
    return "Hello World!"
@app.route('/sayhi/<name>')
def sayhi(name='default'):
    return f'hi,{name}'
run(app, host='localhost', port=8080)
复制代码


网络异常,图片无法展示
|


请求参数


请求参数就是在 URL 后面拼接的参数,使用?进行连接。


from bottle import Bottle, run,request
app = Bottle()
@app.route('/myinfo')
def myinfo():
    return f"我的姓名是:{request.params['name']},我的年龄是:{request.params['age']}"
run(app, host='localhost', port=8080)
复制代码


网络异常,图片无法展示
|


模板渲染


和其他 web 框架一样,bottle 的模板渲染也是将 html 内容渲染到浏览器。bottle 渲染支持 tplhtml 两种文件,你可以自由选择。


注意,bottle 是在项目根路径和./views/*两个路径下进行模板文件的扫描,通常建议将模板文件统一放到./views/下。


from bottle import Bottle, run,request,template
app = Bottle()
@app.route('/tm')
def tm(tinfo='template'):
    return template('index',tinfo=tinfo)
run(app, host='localhost', port=8080)
复制代码


网络异常,图片无法展示
|


bottle 不但支持使用 templates 方法来进行页面渲染,也支持使用 view 装饰器进行渲染。

就像这样:


from bottle import Bottle, run,request,template,view
app = Bottle()
@app.route('/tm')
@view('index')
def tm(tinfo='template-view'):
    return dict(tinfo=tinfo)
run(app, host='localhost', port=8080)
复制代码


网络异常,图片无法展示
|


我们结合请求参数看下效果:


from bottle import Bottle, run,request,template,view
app = Bottle()
from urllib import parse
@app.route('/tm')
@view('index')
def tm():
    a=request.query['gg']
    b = parse.unquote_plus(a)
    print(b)
    return dict(tinfo=request.params['gg'])
run(app, host='localhost', port=8080)
复制代码


网络异常,图片无法展示
|


自定义 404 等页面


bottle 支持 error 装饰器来拦截错误码进行统一的错误页面展示。


from bottle import Bottle, run,request,template,view
app = Bottle()
@app.error(404)
def error404(error):
    return f'Python全栈开发提醒您:啥都没找到!{error}'
run(app, host='localhost', port=8080)
复制代码


网络异常,图片无法展示
|


重定向


重定向,顾名思义就是访问 a,然后服务器向浏览器发送的重定向指令,让浏览器去访问 b


from bottle import Bottle, run,request,template,view,redirect
app = Bottle()
@app.route('/hello')
def hello():
    return "Hello World!"
@app.get('/red')
def red():
    redirect('/hello')
run(app, host='localhost', port=8080)
复制代码


网络异常,图片无法展示
|


热加载


你可能已经发现前面的操作都是需要手动进行服务器的重启的,其实 bottle 也支持开

发服务器的热加载,你只需要在 run 方法中增加 reloader=True 的配置即可。这样当你修改了代码的时候,bottle 就会自动加载了。


总结


内容有限,以上我们只演示了 bottle 的基本功能,从这些演示中我们已经发现 bottle 的使用非常简答,很多的特性一个装饰器就能搞定,感兴趣的同学可以动手试试。更多的内容请关注 bottle 的官方文档:bottlepy.org/docs

相关文章
|
11天前
|
监控 搜索推荐 API
淘宝店铺详情API接口的开发、应用与收益
淘宝开放平台提供了丰富的API接口,帮助开发者获取海量的商品和店铺数据。本文聚焦于淘宝店铺详情API接口的开发、应用及收益。首先,开发者需注册账号并创建应用以获取API密钥。接着,通过阅读接口文档,使用Python等语言编写代码调用API,处理返回的数据。该接口广泛应用于竞品分析、数据分析、价格监控、个性化推荐等领域,为开发者带来提高用户体验、降低运营成本、增加收入等多方面收益。同时,开发者需注意遵守法律法规、请求频率限制及数据安全等问题,确保合法合规地使用接口资源。
30 4
|
21天前
|
自然语言处理 搜索推荐 数据挖掘
淘宝商品描述 API 接口的开发、应用与收益
淘宝商品描述API接口的开发与应用涵盖注册成为开发者、了解API规范、选择开发工具及语言(如Python)和实现代码调用。该接口可用于优化电商平台商品展示、同步数据、竞品分析、智能客服及个性化推荐,从而提高销售转化率、降低运营成本并拓展业务机会。通过自动化处理和数据分析,企业能更精准地满足消费者需求,提升竞争力。
59 9
|
2月前
|
API 数据安全/隐私保护 UED
探索鸿蒙的蓝牙A2DP与访问API:从学习到实现的开发之旅
在掌握了鸿蒙系统的开发基础后,我挑战了蓝牙功能的开发。通过Bluetooth A2DP和Access API,实现了蓝牙音频流传输、设备连接和权限管理。具体步骤包括:理解API作用、配置环境与权限、扫描并连接设备、实现音频流控制及动态切换设备。最终,我构建了一个简单的蓝牙音频播放器,具备设备扫描、连接、音频播放与停止、切换输出设备等功能。这次开发让我对蓝牙技术有了更深的理解,也为未来的复杂项目打下了坚实的基础。
113 58
探索鸿蒙的蓝牙A2DP与访问API:从学习到实现的开发之旅
|
5天前
|
监控 Cloud Native 安全
基于 API 网关践行 API First 开发实践
API First 开发模式的核心在于:以 API 为先,将其视为“头等公民”,在构建应用、服务及集成之前,应优先定义并设计 API 及其配套。API First 作为一种相对较新的开发模式,它已逐渐流行并获得业内的广泛认可。
|
27天前
|
安全 搜索推荐 数据挖掘
虾皮店铺商品API接口的开发、运用与收益
虾皮(Shopee)作为东南亚领先的电商平台,通过开放API接口为商家和开发者提供了全面的数据支持。本文详细介绍虾皮店铺商品API的开发与运用,涵盖注册认证、API文档解读、请求参数设置、签名生成、HTTP请求发送及响应解析等步骤,并提供Python代码示例。API接口广泛应用于电商导购、价格比较、商品推荐、数据分析等场景,带来提升用户体验、增加流量、提高运营效率等收益。开发者需注意API密钥安全、请求频率控制及遵守使用规则,确保接口稳定可靠。虾皮API推动了电商行业的创新与发展。
102 31
|
16天前
|
API 开发者
通义灵码 API 开发文档自动生成场景DEMO
通义灵码API开发文档自动生成场景DEMO展示了通过自定义指令,大模型能快速根据类代码生成Markdown格式的API文档。文档详细描述API的入参、出参,并可生成测试代码等示例,帮助开发者快速创建美观的API文档。
|
25天前
|
监控 搜索推荐 API
京东JD商品详情原数据API接口的开发、运用与收益
京东商品详情API接口是京东开放平台的重要组成部分,通过程序化方式向第三方提供商品详细信息,涵盖名称、价格、库存等。它促进了京东生态系统的建设,提升了数据利用效率,并推动了企业和商家的数字化转型。开发者可通过注册账号、获取密钥、调用接口并解析返回结果来使用该API。应用场景包括电商平台的价格监控、竞品分析、个性化推荐系统开发、移动应用开发及数据整合与共享等。该接口不仅为企业和开发者带来商业价值提升、用户体验优化,还助力数据资产积累,未来应用前景广阔。
96 9
|
29天前
|
存储 搜索推荐 API
拼多多根据ID取商品详情原数据API接口的开发、运用与收益
拼多多作为中国电商市场的重要参与者,通过开放平台提供了丰富的API接口,其中根据ID取商品详情原数据的API接口尤为重要。该接口允许开发者通过编程方式获取商品的详细信息,为电商数据分析、竞品分析、价格监测、商品推荐等多个领域带来了丰富的应用场景和显著的收益。
61 10
|
22天前
|
存储 JSON API
小红书获取笔记详情API接口的开发、应用与收益。
小红书笔记详情API采用Python与Django框架开发,使用MySQL数据库存储数据。接口通过HTTP GET请求获取笔记详情,返回JSON格式数据,包含笔记内容、作者信息、图片链接等。该API应用于小红书APP内笔记展示和互动功能,并支持第三方平台的内容整合与数据分析,提升用户体验与活跃度,促进品牌合作推广,优化平台运营效率,为平台带来显著收益。
92 1
|
28天前
|
JSON 供应链 搜索推荐
淘宝APP分类API接口:开发、运用与收益全解析
淘宝APP作为国内领先的购物平台,拥有丰富的商品资源和庞大的用户群体。分类API接口是实现商品分类管理、查询及个性化推荐的关键工具。通过开发和使用该接口,商家可以构建分类树、进行商品查询与搜索、提供个性化推荐,从而提高销售额、增加商品曝光、提升用户体验并降低运营成本。此外,它还能帮助拓展业务范围,满足用户的多样化需求,推动电商业务的发展和创新。
52 5