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中的join()函数的用法
Apr 07 Python
Python实现求最大公约数及判断素数的方法
May 26 Python
python实现用户登录系统
May 21 Python
Python实现简易端口扫描器代码实例
Mar 15 Python
Tensorflow 训练自己的数据集将数据直接导入到内存
Jun 19 Python
Python实现的特征提取操作示例
Dec 03 Python
Python 列表的清空方式
Jan 13 Python
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
Mar 13 Python
在python里创建一个任务(Task)实例
Apr 25 Python
Python 解析库json及jsonpath pickle的实现
Aug 17 Python
如何在Python3中使用telnetlib模块连接网络设备
Sep 21 Python
Python re.sub 反向引用的实现
Jul 07 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实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
Laravel向公共模板赋值方法总结
2019/06/25 PHP
关于Jqzoom的使用心得 jquery放大镜效果插件
2010/04/12 Javascript
关于 文本框默认值 的操作js代码
2012/01/12 Javascript
JavaScript解析json格式数据简单示例
2014/12/09 Javascript
css如何让浮动元素水平居中
2015/08/07 Javascript
JS仿百度自动下拉框模糊匹配提示
2016/07/25 Javascript
详解webpack打包vue时提取css
2017/05/26 Javascript
从源码看angular/material2 中 dialog模块的实现方法
2017/10/18 Javascript
Angular数据绑定机制原理
2018/04/17 Javascript
微信小程序Getuserinfo解决方案图解
2018/08/24 Javascript
详解用vue2.x版本+adminLTE开源框架搭建后台应用模版
2019/03/15 Javascript
详解从vue-loader源码分析CSS Scoped的实现
2019/09/23 Javascript
p5.js实现简单货车运动动画
2019/10/23 Javascript
Vue中图片Src使用变量的方法
2019/10/30 Javascript
[02:02]特效爆炸!DOTA2珍宝之瓶待你开启
2018/08/21 DOTA
Python查询Mysql时返回字典结构的代码
2012/06/18 Python
django反向解析URL和URL命名空间的方法
2018/06/05 Python
python+POP3实现批量下载邮件附件
2018/06/19 Python
Python使用字典的嵌套功能详解
2019/02/27 Python
django页面跳转问题及注意事项
2019/07/18 Python
python面向对象之类属性和类方法案例分析
2019/12/30 Python
域名注册、建站工具、网页主机、SSL证书:Dynadot
2017/01/06 全球购物
澳大利亚便宜的家庭购物网站:CrazySales
2018/02/06 全球购物
微软中国官方旗舰店:销售Surface、Xbox One、笔记本电脑、Office
2018/07/23 全球购物
Python是如何进行类型转换的
2013/06/09 面试题
高中数学教学反思
2014/01/30 职场文书
军训教官感言
2014/03/02 职场文书
解除劳动关系协议书范文
2014/09/11 职场文书
趣味运动会开幕词
2015/01/28 职场文书
闪闪红星观后感
2015/06/08 职场文书
2016年6月份红领巾广播稿
2015/12/21 职场文书
2019新学期家长会工作计划
2019/08/21 职场文书
2019年最新感恩节祝福语(28句)
2019/11/27 职场文书
PHP 对接美团大众点评团购券(门票)的开发步骤
2021/04/03 PHP
为什么代码规范要求SQL语句不要过多的join
2021/06/23 MySQL