Python的Bottle框架中返回静态文件和JSON对象的方法


Posted in Python onApril 30, 2015

代码如下:

# -*- coding: utf-8 -*-
#!/usr/bin/python
# filename: todo.py
# codedtime: 2014-8-28 20:50:44

import sqlite3
import bottle
  
@bottle.route('/help3')
def help():
  return bottle.static_file('help.html', root='.') #静态文件

@bottle.route('/json:json#[0-9]+#')
def show_json(json):
  conn = sqlite3.connect('todo.db')
  c = conn.cursor()
  c.execute("SELECT task FROM todo WHERE id LIKE ?", (json))
  result = c.fetchall()
  c.close()

  if not result:
    return {'task':'This item number does not exist!'}
  else:
    return {'Task': result[0]} #返回Json对象

bottle.debug(True)
bottle.run(host='127.0.0.1', port=8080, reloader = True)

 第一个路由@bottle.route('/help3') 返回一个静态问,在浏览器中输入:http://127.0.0.1:8080/help3

结果如下:

Python的Bottle框架中返回静态文件和JSON对象的方法

其中的 root='.')或 root='./')表示在程序当前目录下,当然你也可以知道其他的路径如: root='/path/to/file'

第二个路由@bottle.route('/json:json#[0-9]+#')返回一个Json对象,在浏览器中输入:http://127.0.0.1:8080/json4

结果如下:

Python的Bottle框架中返回静态文件和JSON对象的方法

Web程序难免会遇到访问失败的错误,那么怎样去捕获这些错误,Bottle可以用路由机制来捕捉错误,如下捕获403、404:

@error(403)
def mistake403(code):
  return 'The parameter you passed has the wrong format!'

@error(404)
def mistake404(code):
  return 'Sorry, this page does not exist!'

其他错误处理如法泡制!

Python 相关文章推荐
Python json模块使用实例
Apr 11 Python
使用Turtle画正螺旋线的方法
Sep 22 Python
JS设计模式之责任链模式实例详解
Feb 03 Python
如何在Django中添加没有微秒的 DateTimeField 属性详解
Jan 30 Python
Python中捕获键盘的方式详解
Mar 28 Python
[机器视觉]使用python自动识别验证码详解
May 16 Python
django使用admin站点上传图片的实例
Jul 28 Python
PyTorch的Optimizer训练工具的实现
Aug 18 Python
通过Python编写一个简单登录功能过程解析
Sep 04 Python
Pycharm 2020年最新激活码(亲测有效)
Sep 18 Python
python统计函数库scipy.stats的用法解析
Feb 25 Python
python中os包的用法
Jun 01 Python
使用Python编写提取日志中的中文的脚本的方法
Apr 30 #Python
简单的连接MySQL与Python的Bottle框架的方法
Apr 30 #Python
Python的Bottle框架中实现最基本的get和post的方法的教程
Apr 30 #Python
Python中使用Beautiful Soup库的超详细教程
Apr 30 #Python
Python中正则表达式的详细教程
Apr 30 #Python
详解在Python程序中使用Cookie的教程
Apr 30 #Python
处理Python中的URLError异常的方法
Apr 30 #Python
You might like
PHP SPL标准库中的常用函数介绍
2015/05/11 PHP
ThinkPHP框架安全实现分析
2016/03/14 PHP
php获取指定数量随机字符串的方法
2017/02/06 PHP
js有关元素内容操作小结
2011/12/20 Javascript
各浏览器中querySelector和querySelectorAll的实现差异分析
2012/05/23 Javascript
jQuery获取样式中的背景颜色属性值/颜色值
2012/12/17 Javascript
JavaScript中的分号插入机制详细介绍
2015/02/11 Javascript
学习JavaScript设计模式之享元模式
2016/01/18 Javascript
js实现滚动条滚动到某个位置便自动定位某个tr
2021/01/20 Javascript
详解AngularJS中的http拦截
2016/02/09 Javascript
AngularJS基础 ng-readonly 指令简单示例
2016/08/02 Javascript
自己封装的一个简单的倒计时功能实例
2016/11/23 Javascript
移动端点击态处理的三种实现方式
2017/01/12 Javascript
node.js基于fs模块对系统文件及目录进行读写操作的方法详解
2017/11/10 Javascript
jQuery控制input只能输入数字和两位小数的方法
2019/05/16 jQuery
js判断浏览器的环境(pc端,移动端,还是微信浏览器)
2020/12/24 Javascript
vue select 获取value和lable操作
2020/08/28 Javascript
详解Python中的变量及其命名和打印
2016/03/11 Python
使用Python的Flask框架构建大型Web应用程序的结构示例
2016/06/04 Python
Django卸载之后重新安装的方法
2017/03/15 Python
Python中read()、readline()和readlines()三者间的区别和用法
2017/07/30 Python
解决Python 命令行执行脚本时,提示导入的包找不到的问题
2019/01/19 Python
pycharm创建一个python包方法图解
2019/04/10 Python
python实现二级登陆菜单及安装过程
2019/06/21 Python
Django项目中使用JWT的实现代码
2019/11/04 Python
css3背景图片透明叠加属性cross-fade简介及用法实例
2013/01/08 HTML / CSS
HTML5全屏(Fullscreen)API详细介绍
2015/04/24 HTML / CSS
加拿大著名时装品牌:SOIA & KYO
2016/08/23 全球购物
英国第一家领先的在线处方眼镜零售商:Glasses Direct
2018/02/23 全球购物
编程实现去掉XML的重复结点
2014/05/28 面试题
自动化专业本科毕业生求职信
2013/10/20 职场文书
预备党员入党思想汇报
2014/01/04 职场文书
捐书活动倡议书
2015/04/27 职场文书
2015年反腐倡廉工作总结
2015/05/14 职场文书
浅谈Python基础之列表那些事儿
2021/05/11 Python
pandas 实现将NaN转换为None
2021/05/14 Python