13 months ago
fixed db column type
1 # -*- coding:utf-8 -*-
2 from juno import get, post, find, run, template, init, model, redirect
3 import time
5 __version__ = '0.0.2'
6 __author__ = 'Hideo Hattori'
8 CODEC = 'utf-8'
10 init({'dev_port': 8080,
11 'template_lib': 'jinja2',
12 'db_location': 'juno-blog.db',
13 'use_sessions': True,
14 'use_debugger': True})
16 User = model('User', name = 'string',
17 title = 'unicode',
18 password = 'string')
20 Blog = model('Blog', name = 'string',
21 title = 'unicode',
22 date = 'string',
23 text = 'unicodetext')
25 @get('/')
26 def home(web):
27 users = find(User).all()
28 template('index.html', {'users': [ u for u in users ],
29 'login': web.session.has_key('name')})
31 @post('/login/')
32 def login(web):
33 name = web.input('name')
34 password = web.input('password')
35 exist = User.find().filter(User.name==name).all()
36 if 1 == len(exist) and exist[0].password == password:
37 web.session['name'] = name
38 web.session.save()
39 template('login.html', {'user': name, 'exist': len(exist)})
41 @post('/useradd/')
42 def useradd(web):
43 name = web.input('name')
44 password = web.input('password')
45 title = web.input('title').decode(CODEC)
46 exist = User.find().filter(User.name==name)
47 if exist.count():
48 template('index.html', {})
49 return
50 user = User(name=name, title=title, password=password)
51 user.add().save()
52 web.session['name'] = name
53 web.session.save()
54 redirect('/blog/%s' % name)
56 @get('/logout/')
57 def logout(web):
58 if web.session.has_key('name') == True:
59 name = web.session['name']
60 web.session.delete()
61 else:
62 redirect('/')
63 return
64 template('logout.html', {'user': {'name': name}})
66 @get('/blog/:name/')
67 def blog(web, name):
68 user = User.find().filter(User.name==name).all()[0]
69 blogs = Blog.find().filter(Blog.name==name).all()
70 blogs = [ b for b in blogs if b.name == name ]
71 login = False
72 if web.session.has_key('name') == True:
73 if web.session['name'] == name:
74 login = True
75 template('blog.html', {'user': user, 'blogs': blogs, 'login': login})
77 @post('/blogpost/:name/')
78 def postblog(web, name):
79 title = web.input('title').decode(CODEC)
80 text = web.input('pagetext').decode(CODEC)
81 date = time.ctime()
82 b = Blog(name=name, title=title, text=text, date=date)
83 b.add().save()
84 blogs = find(Blog).all()
85 blogs = [ b for b in blogs if b.name == name ]
86 template('blog.html', {'user': {'name': name, 'title': title},
87 'blogs': blogs})
89 if __name__ == '__main__':
90 run()