您的位置:首页 > 数据库

Bottle实例Todo-List—查询并显示数据库中的内容

2014-08-27 21:00 666 查看
下面代码会用到上例: Bottle实例Todo-List—用SQLite3创建数据库

Python Code
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

# -*- coding: utf-8 -*-

#!/usr/bin/python

# filename: todo.py

# codedtime: 2014-8-26 22:52:29

import sqlite3

import bottle

@bottle.route('/todo')

def todo_list():

conn = sqlite3.connect('todo.db')

c = conn.cursor()

c.execute("SELECT id, task FROM todo WHERE status LIKE '1'")

result = c.fetchall()

return str(result) #返回元组列表

bottle.run()
把本程序和todo.db放在一个目录下,运行本程序,在浏览器中输入:http://127.0.0.1:8080/todo
在浏览器中会输出如下:



这是一个原组列表,数据库查询的结果是返回一个原则列表,这里用str()将其转换成字符串输出。

我们可以为todo_list()回调函数添加多条路由如下:

1

2

3

4

@route('/todo')

@route('/my_todo_list')

def todo_list():

...
这样我们在浏览器输入: http://127.0.0.1:8080/todo和http://127.0.0.1:8080/my_todo_list 效果是一样的;

在编写WEB程序过程中,我们经常需要测试,那么输出调试信息就很重要,bottle提供了简单的输出详细调试信息和自动重载功能,如:我们启动了Bottle的服务器后在改动程序后手动重启,保持(Ctr+s)修改的程序,bottle会自动重载,具体操作如下:

把bottle.run()换成如下:

1

2

bottle.debug(True)

bottle.run(reloader = True)
在windows下双击:todo.py后会启动服务器,以后我们修改程序代码,都需要重启服务器,保存代码后服务器会自动重启。

使用template格式化输出:

Python Code
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

import sqlite3

import bottle

@bottle.route('/todo')

def todo_list():

conn = sqlite3.connect('todo.db')

c = conn.cursor()

c.execute("SELECT id, task FROM todo WHERE status LIKE '0'")

result = c.fetchall()

c.close()

output = bottle.template('make_table', rows = result)

return output

bottle.debug(True)

bottle.run(host='127.0.0.1', port=8018, reloader = True)
下面是make_table.tpl

1

2

3

4

5

6

7

8

9

10

11

%#template to generate a HTML table from a list of tuples (or list of lists, or tuple of tuples or ...)

<p>The open items are as follows:</p>

<table border="1">

%for row in rows:

<tr>

%for col in row:

<td>{{col}}</td>

%end

</tr>

%end

</table>
在浏览器输入:http://127.0.0.1:8018/todo 结果如下



template语法以后再介绍,详细见Bottle官方文档。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐