【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
sql语句如下所示,
CREATE TABLE todo ( id INT AUTO_INCREMENT, title TEXT, primary key (id) );
$def with (page) <html> <head> <title>Todo list</title> </head> <body> $:page </body> </html>
templates/index.html为,
$def with (todos, form) <table> <tr> <th>What to do ?</th> <th></th> </tr> $for todo in todos: <tr> <td>$todo.title</td> <td> <form action="/del/$todo.id" method="post"> <input type="submit" value="Delete"/> </form> </td> </tr> </table> <form action="" method="post"> $:form.render() </form>
import web db = web.database(dbn='mysql', db='test', user='root', pw='123456') def get_todos(): return db.select('todo', order='id') def new_todo(text): db.insert('todo', title=text) def del_todo(id): db.delete('todo', where="id=$id", vars=locals())
""" Basic todo list using webpy 0.3 """ import web import model ### Url mappings urls = ( '/', 'Index', '/del/(\d+)', 'Delete' ) ### Templates render = web.template.render('templates', base='base') class Index: form = web.form.Form( web.form.Textbox('title', web.form.notnull, description="I need to:"), web.form.Button('Add todo'), ) def GET(self): """ Show page """ todos = model.get_todos() form = self.form() return render.index(todos, form) def POST(self): """ Add new entry """ form = self.form() if not form.validates(): todos = model.get_todos() return render.index(todos, form) model.new_todo(form.d.title) raise web.seeother('/') class Delete: def POST(self, id): """ Delete based on ID """ id = int(id) model.del_todo(id) raise web.seeother('/') app = web.application(urls, globals()) if __name__ == '__main__': app.run()