| |
home of the web.py community
lec.ker - a simple del.icio.us clone
by Valentin Wüstholz
database (MySQL):
CREATE TABLE `lecker`.`bookmarks` (
`id` int(10) unsigned NOT NULL auto_increment,
`url` text NOT NULL,
`created` timestamp NOT NULL default CURRENT_TIMESTAMP,
`tags` text NOT NULL,
`title` text NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`)
);
source code:
todo-list/
lecker.py
templates/
view.html
edit.html
delete.html
search.html
lecker.py
import web
urls = (
'/', 'view',
'/add', 'add',
'/delete', 'delete',
'/edit/([0-9]*)', 'edit',
'/search/(\S*)', 'search'
)
class view:
def GET(self):
bookmarks = list(web.select("bookmarks", order="created desc"))
for b in bookmarks:
b.tags = b.tags.split()
web.render('view.html')
class add:
def POST(self):
i = web.input()
web.debug(type(i.tags))
n = web.insert('bookmarks', title=i.title, url=i.url, tags=i.tags)
web.seeother('./#t'+str(n))
class delete:
def GET(self):
bookmarks = web.select("bookmarks", order="title")
web.render('delete.html')
def POST(self):
i = web.input()
web.debug(i)
for item in i:
web.delete('bookmarks', 'id = '+item)
web.seeother('./#')
class edit:
def GET(self, id):
try:
bookmark = web.select("bookmarks", where="id = "+id)[0]
web.render('edit.html')
except IndexError:
print "This bookmark doesn't exist."
def POST(self, id):
i = web.input()
web.update('bookmarks', 'id = '+id, title=i.title, url=i.url, tags=i.tags)
web.seeother('../')
class search:
def GET(self, tag):
bookmarks = []
bs = list(web.select("bookmarks", order="created desc"))
for b in bs:
b.tags = b.tags.split()
if tag in b.tags:
bookmarks.append(b)
empty = (len(bookmarks) == 0)
web.render('search.html')
def POST(self, tag):
i = web.input()
tags = i.tags.split()
bookmarks = []
bs = list(web.select("bookmarks", order="created desc"))
for b in bs:
b.tags = b.tags.split()
if every(lambda t: t in b.tags, tags):
bookmarks.append(b)
empty = (len(bookmarks) == 0)
web.render('search.html')
def every(f, lst):
for x in lst:
if not f(x):
return False
return True
web.internalerror = web.debugerror
web.db_parameters = dict(dbn='mysql', user='root', pw='', db='lecker')
if __name__ == '__main__': web.run(urls, web.reloader)
view.html
<p><center><h1>lec.ker</h1></center></p>
<p>
<hr/>
</p>
<center>
<form name="search" method="post" action="search/#">
<p>
<p>
<input type="text" name="tags" size="50" />
</p>
<input type="submit" value="Search" />
</p>
</form>
</center>
<p>
<hr/>
</p>
<table border="0" width="100%">
#for bookmark in $bookmarks
<colgroup>
<col width="50%">
<col width="35%">
<col width="15%">
</colgroup>
<tr>
<form name="del$bookmark.id" method="post" action="delete">
<td>
<a href="$bookmark.url"> $bookmark.title </a>
</td>
<td>
#for tag in $bookmark.tags
<a href="/search/$tag"> $tag </a> |
#end for
</td>
<td align="right">
<a href="edit/$bookmark.id">(edit)</a>
<input type="hidden" name="$bookmark.id" value="1" />
<a href="#" onclick=document.del${bookmark.id}.submit()>(delete)</a>
</td>
</form>
</tr>
#end for
</table>
<p>
<hr/>
</p>
<form name="add" method="post" action="add">
<table border="0" width="100%">
<p>
<tr>
<td>
Title:
</td>
<td>
<input type="text" name="title" size="100" />
</td>
</tr>
<tr>
<td>
Url:
</td>
<td>
<input type="text" name="url" size="100" />
</td>
</tr>
<tr>
<td>
Tags:
</td>
<td>
<input type="text" name="tags" size="100" />
</td>
</tr>
</p>
</table>
<p>
<input type="submit" value="Add" />
</p>
</form>
<a href="delete">Delete Bookmarks</a>
edit.html
<p><center><h1>lec.ker</h1></center></p>
<p><h2>Edit Bookmark:</h2></p>
<form method="post" action="">
<p>
<p>
Title:<input type="text" name="title" value="$bookmark.title" size="100" />
</p>
Url:<input type="text" name="url" value="$bookmark.url" size="100" />
</p>
Tags:<input type="text" name="tags" value="$bookmark.tags" size="100" />
</p>
<input type="submit" value="Edit" />
</p>
</form>
<p>
<hr/>
</p>
<a href="../">Back</a>
delete.html
<p><center><h1>lec.ker</h1></center></p>
<form name = "bookmarks" method="post" action="delete">
<p><h2>Delete Bookmarks:</h2></p>
<p>
#for bookmark in $bookmarks
<input type="checkbox" name="$bookmark.id" value="1"> <a href="$bookmark.url"> $bookmark.title </a><br>
#end for
</p>
<p><input type="submit" value="Delete" />
</p>
</form>
<p>
<hr/>
</p>
<a href="../">Back</a>
search.html
<p><center><h1>lec.ker</h1></center></p>
<table border="0" width="100%">
#for bookmark in $bookmarks
<colgroup>
<col width="50%">
<col width="35%">
<col width="15%">
</colgroup>
<tr>
<form name="del$bookmark.id" method="post" action="../delete">
<td>
<a href="$bookmark.url"> $bookmark.title </a>
</td>
<td>
#for tag in $bookmark.tags
<a href="../search/$tag"> $tag </a> |
#end for
</td>
<td align="right">
<a href="../edit/$bookmark.id">(edit)</a>
<input type="hidden" name="$bookmark.id" value="1" />
<a href="#" onclick=document.del${bookmark.id}.submit()>(delete)</a>
</form>
</td>
</form>
</tr>
#end for
</table>
#if $empty
No Bookmarks were found.
#end if
</p>
<p>
<hr/>
</p>
<a href="../">Back</a>
wedding gown dress discount wedding gown wedding gown prom gown dress cheap prom dress wedding gown dress western wedding dress prom dress quinceanera dress quinceanera gown quinceanera dresses
oil paintings oil painting reproductions art reproductions oil paintings
last updated 1 day ago
#
history
|