利用web2py进行快速数据库开发

web2py是一个快速的网页开发工具,非常好用。下面用一个实际的例子来说明。
在web2py中,有三个基本的概念,模型控制和视图。

web2py安装完毕以后,进入application目录。可以看到welcome目录。这是第一个例子。在这个目录下还有三个目录,分别是,controllers/models/views目录。在控制目录下,有一个python文件default.py. 打开这个文件可以看到里面定义了函数index。对应于welcome/default/index页面。对于每一个页面而言在视图目录有一个对应的视图.html。对于这个页面就是views/default/index.html。

控制返回的数据可以在视图中看到。如果控制返回一个字符串。那么,这个字符串就直接作为返回页面而不需要视图页面。如果控制返回一个字典数据结构。在这种情况下。视图文件是必须的!视图文件中可以引用控制中返回的词典中的数据.另外,控制中可以返回所有的局部变量。在这种情况下试图中也可以直接引用这些局部变量。

对于模型文件,就是模型目录下的那些.py文件。对于每个页面而言,这些.py文件都会被运行。如果对于特定的页面有特定的模型文件需要运行。那么需要将这些模型文件放在,models/default/子目录下。对于welcome而言,没有额外的模型文件。

这个框架中提供了对数据库很好的支持,可以很方便地生成数据库添加修改查找,删除等页面。

暂定我们开发的数据库,有一个表,有两个字段。一个是日期。另一个是数字叫total.
因为要用到数据库,每次操作前需要连接数据库,并指明表的结构,所以这些动作放在models文件中。
打开models/db.py 添加以下内容:


db = DAL(‘mysql://user:passwd@localhost/dbname’) #连接mysql数据库localhost dbname , user:passwd

db.define_table(‘pfund’,Field(‘date’,’date’),Field(‘total’,’double’)) #建表pfund,两个域

对于这种数据表的定义,我们可以添加一个操作页面。这个页面的名字我们把它叫做manager,我们在控制视图中添加一个函数叫manager。函数的内容如下,很简单。只需要两行就可以了。


def manager():

grid = SQLFORM.grid(db.pfund)

return locals()


我们可以看到,这个函数返回来当前的局部变量,也就是grid。
然后,在对应的视图文件将这个grid显示出来即可。

{{extend 'layout.html'}}         

<h2>Input form</h2>      

{{=grid}}

这个页面提供了添加,修改,删除以及按列排序等功能。非常实用。
假定我启动web2py的命令行如下:


./web2py.py –nogui -i 218.244.148.127 -p 8080 -a xxxx


最终的显示结果如下

web2py web2py



本文地址: http://www.bagualu.net/wordpress/archives/3940 转载请注明




“利用web2py进行快速数据库开发”的一个回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注