从昨天开始的代码,继续学习, 很累了?
知识点:
1、数据库如何修改字段值。
update 数据表名 set 行= 新值 where 行 = 值
困惑:
1,数据库调用出错,能不能用404页面。
作为一个销售,还是一个在创业的销售,我已经有点累了,甚至怕大量的时间发在这值得吗? 但是我知道,一定要坚持。
我们要做一个这样的东西,就是 访问 : www.sina.com.cn/move/2,得到网站信息。
根据代码:##
撰写如下:
import web
urls = ('/','Index','/move/(\d+)','Moveies')
db = web.database(dbn='sqlite',db='movesite.db')
render = web.template.render('templates/')
class Index:
def GET(self):
moves = db.select('move')
return render.index(moves)
class Moveies:
def GET(self,move_id):
move_id = int(move_id)
movelist = db.select('move',where ='id=$move_id',vars=locals())[0]
return render.move(movelist)
if __name__ == '__main__':
app = web.application(urls,globals())
app.run()
报错了,到服务器里看,
0.0 (1): SELECT * FROM move WHERE id=2
Traceback (most recent call last):
证明sql语言是出去了,但是traceback显示错误, 代表的是,数据库查询的时候错误了。
于是我进入了数据库表:
为什么不能显示id=2,呢, 我回想了一个自己输入的命令
update move set id = '2' where nation = '日本';
应该是id = 2, 字符就是字符,数字就是数字, 一改就好了。
另外,我弄明白了 move /21 ,就会报错, 因为数据库还是无法调用。
备注:数据库无法调用,能不能显示404呢。 这个不知道以后说吧 。
彻底的总结一下:
- /move/1 ,url结构并不代表文件夹。你的服务器不包含move文件夹。就如同1不代表意义。 他只是表示一种url结构,而不是文件夹结构。
比如这里,就是move.html, 1代表,move.html某个where * =1 的 动态页面。整个move.html就是数据库提取生成的页面。你可以理解为调用数据(1)后的move.html。
+ /move/1 , 这就是cs 之间的get模式。
我在官方文档看到了,一/move?name=1
这种模式, 这是我以前非常困惑的模式,现在看来他仅仅是web.input一种。我们可以看看。
一样,我在 [这里],看到了 (http://webpy.org/cookbook/input.zh-cn)