Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- import web
- import sys
- import MySQLdb
- import pickle
- from web import form
- debug = False
- urls = (
- '/', 'home',
- '/home', 'home',
- '/books', 'books',
- '/portfolio', 'portfolio',
- '/blog', 'indexBlog',
- '/adminblog', 'adminBlog',
- '/addblog', 'addBlog',
- '/editblog', 'editBlog',
- '/updateblog', 'updateBlog',
- '/login', 'login',
- '/search', 'search'
- )
- db = web.database........................................
- login_form = form.Form(
- form.Textbox("username", size=10, description="Username"),
- form.Textbox("password", size=10, description="Password"),
- form.Button("Login", html="Login", type="submit"),
- validators = [
- form.Validator("Username and password did not match.",
- lambda i: i.username == 'admin' and i.password == 'admin'),
- ]
- )
- render = web.template.render('templates/', base='base')
- render_page = web.template.render('templates/', base='base_page')
- render_portfolio = web.template.render('templates/', base='base_portfolio')
- render_blog = web.template.render('templates/', base='base_blog')
- class login:
- def __init__(self):
- self.title = 'LOGIN'
- self.name = 'LOGIN'
- self.form = login_form()
- def GET(self):
- return render_blog.login(self.form, self.title, self.name)
- def POST(self):
- if not self.form.validates():
- title = 'LOGIN'
- name = 'LOGIN'
- return render.login(self.form, name, title)
- web.ctx.session.user = self.form.username.value
- raise web.seeother('/adminblog')
- class home:
- def GET(self):
- title = 'Welcome'
- name = 'Home Page'
- content = 'test content'
- return render.index(title, name, content)
- class portfolio:
- def GET(self):
- title = 'Our Portfolio'
- name = 'Our Portfolio'
- content = ''
- return render_portfolio.portfolio(title, name, content)
- class indexBlog:
- def GET(self):
- title = 'SYRBOT BLOG'
- name = 'SYRBOT BLOG'
- count = db.select('blog', what='count(*) as total')[0]['total']
- blog = db.select('blog', order='id')
- blog_entries = db.select('blog')
- return render_blog.blog(title, name, count, blog_entries)
- class adminBlog:
- def GET(self):
- if not web.ctx.session.get('user'):
- raise web.seeother('/login')
- i = web.input()
- title = 'SYRBOT BLOG'
- name = 'SYRBOT BLOG'
- blog_all = db.select('blog')
- blog_count = db.select('blog', what='count(*) as total')[0]['total']
- return render_blog.adminblog(blog_all, blog_count, title, name)
- class addBlog:
- def POST(self):
- if not web.ctx.session.get('user'):
- raise web.seeother('/login')
- i = web.input()
- n = db.insert('blog', i, title=i.title, blog=i.blog)
- raise web.seeother('/adminblog')
- class editBlog:
- def GET(self):
- if not web.ctx.session.get('user'):
- raise web.seeother('/login')
- i = web.input()
- count = db.select('blog', what='count(*) as total')[0]['total']
- title = 'Syrbot Blog'
- name = 'Syrbot Blog'
- blog_all = db.select('blog')
- blog_edit = db.select('blog', i, where="id = $id")
- return render_blog.editblog(blog_edit, blog_all, title, count, name)
- class updateBlog:
- def POST(self):
- if not web.ctx.session.get('user'):
- raise web.seeother('/login')
- i = web.input()
- title = 'Syrbot Blog'
- name = 'Syrbot Blog'
- db.update('blog', where="id=$id", vars={'id':i.id}, title=i.title, blog=i.blog)
- raise web.seeother('/adminblog')
- class search:
- def GET(self):
- title = 'Search Results'
- name = 'Search Results'
- count = 0
- results = []
- i = web.input()
- s = i.s
- pkl_file = open('scripts/books_index.py', 'rb')
- mydict = pickle.load(pkl_file)
- pkl_file.close()
- for k,v in mydict.items():
- v_tmp = v
- if s.upper() in v['title'].upper():
- count=count+1
- results.append(v_tmp)
- return render_page.search(title, name, results, count)
- app = web.application(urls, globals())
- session = web.session.Session(app, web.session.DiskStore('sessions'),
- initializer={'user': None})
- def session_hook():
- web.ctx.session = session
- app.add_processor(web.loadhook(session_hook))
- if __name__ == "__main__":
- app.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement