在你开始使用数据库之前,确保你已经安装了合适的数据库访问库。比如对于MySQL数据库,使用pymysql客户端来连接。
pymysql安装:
pip install pymysql
就这么简单
然后,首先你需要创建一个数据库对象:
db = web.database(dbn='postgres', user='username', pw='password', db='dbname')
(根据需要修改这里 – 尤其是username 、 password 、 dbname – 。 MySQL用户还需要把 dbn 定义改为 mysql。)
上面就是所有你需要做的 – web.py将会自动处理与数据库的连接和断开。
使用数据库管理工具,在你的数据库库中创建一个简单的表:
CREATE TABLE todo (
id serial primary key,
title text,
created timestamp default now(),
done boolean default 'f' );
INSERT INTO todo (title) VALUES ('Learn web.py');
回来继续编辑test.py,把index.get改成下面的样子,替换整个函数:
def get(self):
todos = db.select('todo')
return render.index(todos)
把URL列表改回成如下所示:
urls = (
'/', 'index'
)
像下面这样编辑并替换.html的全部内容:
$def with (todos)
<ul>
$for todo in todos:
<li id="t$todo.id">$todo.title</li>
</ul>
再访问网站,然后可以看到“Learn web.py”。从数据库读取数据的程序就成功了。
当你在淘宝上下一个订单时,就需要把你选择的商品,种类等内容通过网页提交给WEB服务器,然后WEB服务器调用后台程序,把这些数据写到数据库,从而生成一个订单,然后商家再通过这笔数据进行发货。可见,从页面提交数据,再写入数据库的过程,基本成为目前网站开发的基本过程了。
然后我们同样再写一个可以把数据写入数据库的程序
在刚才的.html文件尾部添加:
<form method="post" action="add">
<p><input type="text" name="title" /> <input type="submit" value="Add" /></p>
</form>
把URL映射改为如下所示:
urls = (
'/', 'index',
'/add', 'add'
)
随之,我们需要现再添加另一个类——add:
class add:
def POST(self): #注意现在我们正在使用的是post
i = web.input() #web.input 可以让你访问用户通过form提交的任何数据。
n = db.insert('todo', title=i.title) #db.insert把数据插入数据表todo,然后把新的行号返回给你。
raise web.seeother('/') #seeother把用户重定向到指定的URL。
注意: 如果要访问多个相同名字的字段,请使用list的格式(比如:一串name=”name”的多选框):
post_data=web.input(name=[])
补充 :URL重定向(URL redirection,或称网址重定向或网域名称转址),是指当使用者浏览某个网址时,将他导向到另一个网址的技术。