web开发学习周记——对表格的基本操作

web开发学习周记——对表格的基本操作

环境已经搭建好了,接下来要用这些工具制作一个简单的小应用:对表格中的信息进行“增删改查”。
首先要在 Navicat 新建数据库,在数据库中新建我们要操作的表格,这里用的是 ace admin 的 tables 中的表格。
在这里插入图片描述
id 字段是之后加上去的,因为在编写删除语句时,发现通过每行数据的行号锁定位置进行删除,所以加了 id 字段表示行数,在之后的编写中也发现 id 是必不可少的字段,很多的操作都需要 id 来锁定目标。
表格建好后,需要初始化表格的第一行。在查询中编写如下代码:

INSERT INTO workform (id,domain,price,click,date,status) VALUES (7,'ac.com','83','4330','2019-5-31','Expiring');

workform是表格的名字,前面括号里是每列的名字,后面括号里是对应的内容,这里要注意名字的类型,输入的内容要符合定义的类型,否则无法初始化。

初始化成功后,说明我们的表格没有问题,接下来就要调用 web.py 功能编写应用框架。
连接数据库:

db = web.database(dbn='postgres', user='postgres', pw='618966', db='test')

这是 web.py 连接数据库的固定用法,我用的是postgres,所以dbn就是它;user和pw是登录postgres时的用户名和密码,db是新建的数据库的名字。
在连接前要检查,是否安装了数据库访问库,postgres用psycopg2访问。
安装psycopg2方法:pip install psycopg2
修改主代码:
在之前编写的“hello word”代码的基础上进行修改。
修改index.GET:

class index:
    def GET(self):
        domain = db.select('workform')
        return render.index(domain)
 

db.select() 是读取数据库内容的命令,括号中输入的是表格名 workform ,前面要具体到表格中具体的列名 domain ,最后返回 domain 内容。
若要读取多个列表的内容,按照上面的规则遍历其他变量即可。

修改index.html:

$def with (workforms)
<ul>
$for workform in workforms:
    <li domain="t$workform.domain" >$workform.domain</li>
</ul>

$for workform in workforms 可以理解为 python 的 for 循环语句,把 workform 的内容按顺序显示到网页上。要注意 表格名.列名 的格式,我在编写是把表格名写成了新建的数据库名,频繁报错。

运行程序(多行内容)

在这里插入图片描述
读取成功,接着编写增加内容的应用。
编写 add.POST :
首先要对 URL 进行更改:

urls = (
     '/', 'index',
     '/add', 'add'
 )

增加新类:class add

class add:
    def POST(self):
        i = web.input()
        n = db.insert('workform',  domain=i.domain )
        raise web.seeother('/')

web.input 可以让用户输入要增加的数据。db.insert 把数据插入表格 workform ,i.domain 定义了具体的插入位置。 最后 web.seeother 把定义返回到URL。
更改index.html:
在之前的基础上,增加如下代码:

<form method="post" action="add">
<p><input type="text" name="domain"> <input type="submit" value="Go!" /></p>

这里要注意,name是一个统称,name右边的是具体的内容,不能写成 domain=“domain”。这也是我犯错的地方,而且自己迟迟未能发现,最后是师兄指出我的错误。
更改列表内容的应用。
更改列表的代码和增加列表的代码类似,只需在 add.POST 上修改。将 db.insert 命令改为:

m = db.update('workform', where="id = 2", id=i.id , domain=i.domain )

更改列表需要事先锁定好行数,这就是最开始列表创建 id 列的原因,因此在网页上更改时,也要输入行数,所以要在 index.html 中增加一段代码:

<input type="text" name="id">

增加了一个输入框

删除和查询代码相对简单,不需要在类中做出更改,只需在连接数据库的代码下编写。
删除:

db.delete('workform', where="id=2")

删除第二行的内容
查询:

results = list(db.select('workform', what="domain"))

这里查询的是 domain 列的内容,用 list 是查询结果以列表的形式显示。

以上就是对表格的简单操作,附上最后的完成版:
在这里插入图片描述

增加数据:

在这里插入图片描述
在这里插入图片描述
删除第6行:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
更改第五行:
在这里插入图片描述

在这里插入图片描述
查询 click:
在这里插入图片描述
考试周临近,本学期的课外的学习也该告一段落了,现在还是本科生,还是应该以当前的学业为主,认真复习,努力备考。至于web开发的学习,暑假将会继续学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值