web.py——简单而且功能强大的Python web 框架(5):网页读取和写入数据库

在你开始使用数据库之前,确保你已经安装了合适的数据库访问库。比如对于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)
    $for todo in todos:
  • $todo.title

再访问​​网站,然后可以看到“Learn web.py”。从数据库读取数据的程序就成功了。

当你在淘宝上下一个订单时,就需要把你选择的商品,种类等内容通过网页提交给WEB服务器,然后WEB服务器调用后台程序,把这些数据写到数据库,从而生成一个订单,然后商家再通过这笔数据进行发货。可见,从页面提交数据,再写入数据库的过程,基本成为目前网站开发的基本过程了。

然后我们同样再写一个可以把数据写入数据库的程序
在刚才的.html文件尾部添加:

把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,或称网址重定向或网域名称转址),是指当使用者浏览某个网址时,将他导向到另一个网址的技术。

你可能感兴趣的:(后端,Python,web.py)