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

yipeiwu_com6年前Python基础

代码如下:

# -*- 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

结果如下:

2015430174409809.png (313×137)

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

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

结果如下:

2015430174429421.png (376×141)

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!'

其他错误处理如法泡制!

相关文章

基于Linux系统中python matplotlib画图的中文显示问题的解决方法

最近想学习一些python数据分析的内容,就弄了个爬虫爬取了一些数据,并打算用Anaconda一套的工具(pandas, numpy, scipy, matplotlib, jupyte...

Python创建模块及模块导入的方法

本文实例讲述了Python创建模块及模块导入的方法。分享给大家供大家参考。具体分析如下: python学习手册中写道: 定义模块,只要使用文本编辑器,把一些python代码输入到文本中,...

解决python3中cv2读取中文路径的问题

如下所示: python3: img_path =  ' ' im = cv2.imdecode(np.fromfile(img_path,dtype = np.uin...

无法使用pip命令安装python第三方库的原因及解决方法

无法使用pip命令安装python第三方库的原因及解决方法

再dos中无法使用pip,命令主要是没有发现这个命令。我们先找到这个命令的位置,一般是在python里面的Scripts文件夹里面。我们可以把dos切换到对应的文件夹,再使用pip命令就...

python基于SMTP协议发送邮件

本文实例为大家分享了python基于SMTP协议发送邮件的具体代码,供大家参考,具体内容如下 #!/usr/bin/env python # -*- coding: utf-8 -*...