Advertisement
Guest User

Untitled

a guest
May 3rd, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.61 KB | None | 0 0
  1. #!/usr/bin/env python
  2.  
  3. import web
  4. import sys
  5. import MySQLdb
  6. import pickle
  7. from web import form
  8.  
  9. debug = False
  10.  
  11. urls = (
  12.     '/', 'home',
  13.     '/home', 'home',
  14.     '/books', 'books',
  15.     '/portfolio', 'portfolio',
  16.     '/blog', 'indexBlog',
  17.     '/adminblog', 'adminBlog',
  18.     '/addblog', 'addBlog',
  19.     '/editblog', 'editBlog',
  20.     '/updateblog', 'updateBlog',
  21.     '/login', 'login',
  22.     '/search', 'search'
  23. )
  24.  
  25. db = web.database........................................
  26.  
  27. login_form = form.Form(
  28.     form.Textbox("username", size=10, description="Username"),
  29.     form.Textbox("password", size=10, description="Password"),
  30.     form.Button("Login", html="Login", type="submit"),
  31.     validators = [
  32.         form.Validator("Username and password did not match.",
  33.                        lambda i: i.username == 'admin' and i.password == 'admin'),
  34.     ]
  35. )
  36.  
  37. render = web.template.render('templates/', base='base')
  38. render_page = web.template.render('templates/', base='base_page')
  39. render_portfolio = web.template.render('templates/', base='base_portfolio')
  40. render_blog = web.template.render('templates/', base='base_blog')
  41.  
  42. class login:
  43.     def __init__(self):
  44.         self.title = 'LOGIN'
  45.         self.name = 'LOGIN'
  46.         self.form = login_form()
  47.  
  48.     def GET(self):
  49.         return render_blog.login(self.form, self.title, self.name)
  50.  
  51.     def POST(self):
  52.         if not self.form.validates():
  53.            title = 'LOGIN'
  54.            name = 'LOGIN'
  55.            return render.login(self.form, name, title)
  56.         web.ctx.session.user = self.form.username.value
  57.         raise web.seeother('/adminblog')
  58.  
  59. class home:        
  60.     def GET(self):
  61.         title = 'Welcome'
  62.         name = 'Home Page'
  63.         content = 'test content'
  64.         return render.index(title, name, content)
  65.  
  66. class portfolio:        
  67.     def GET(self):
  68.         title = 'Our Portfolio'
  69.         name = 'Our Portfolio'
  70.         content = ''
  71.         return render_portfolio.portfolio(title, name, content)
  72.  
  73. class indexBlog:
  74.     def GET(self):
  75.         title = 'SYRBOT BLOG'
  76.         name = 'SYRBOT BLOG'
  77.         count = db.select('blog', what='count(*) as total')[0]['total']
  78.         blog = db.select('blog', order='id')
  79.         blog_entries = db.select('blog')
  80.         return render_blog.blog(title, name, count, blog_entries)
  81.  
  82. class adminBlog:
  83.     def GET(self):
  84.         if not web.ctx.session.get('user'):
  85.             raise web.seeother('/login')
  86.         i = web.input()
  87.         title = 'SYRBOT BLOG'
  88.         name = 'SYRBOT BLOG'
  89.         blog_all = db.select('blog')
  90.         blog_count = db.select('blog', what='count(*) as total')[0]['total']
  91.         return render_blog.adminblog(blog_all, blog_count, title, name)
  92.  
  93. class addBlog:
  94.     def POST(self):
  95.         if not web.ctx.session.get('user'):
  96.             raise web.seeother('/login')
  97.         i = web.input()
  98.         n = db.insert('blog', i, title=i.title, blog=i.blog)
  99.         raise web.seeother('/adminblog')
  100.  
  101. class editBlog:
  102.     def GET(self):
  103.         if not web.ctx.session.get('user'):
  104.             raise web.seeother('/login')
  105.         i = web.input()
  106.         count = db.select('blog', what='count(*) as total')[0]['total']
  107.         title = 'Syrbot Blog'
  108.         name = 'Syrbot Blog'
  109.         blog_all = db.select('blog')
  110.         blog_edit = db.select('blog', i, where="id = $id")
  111.         return render_blog.editblog(blog_edit, blog_all, title, count, name)
  112.  
  113. class updateBlog:
  114.     def POST(self):
  115.         if not web.ctx.session.get('user'):
  116.             raise web.seeother('/login')
  117.         i = web.input()
  118.         title = 'Syrbot Blog'
  119.         name = 'Syrbot Blog'      
  120.         db.update('blog', where="id=$id", vars={'id':i.id}, title=i.title, blog=i.blog)
  121.         raise web.seeother('/adminblog')
  122.  
  123. class search:
  124.     def GET(self):
  125.         title = 'Search Results'
  126.         name = 'Search Results'
  127.         count = 0
  128.         results = []
  129.         i = web.input()
  130.         s = i.s
  131.         pkl_file =  open('scripts/books_index.py', 'rb')
  132.         mydict = pickle.load(pkl_file)
  133.         pkl_file.close()
  134.         for k,v in mydict.items():
  135.             v_tmp = v
  136.             if s.upper() in v['title'].upper():
  137.                 count=count+1
  138.                 results.append(v_tmp)    
  139.         return render_page.search(title, name, results, count)
  140.  
  141. app = web.application(urls, globals())
  142.  
  143. session = web.session.Session(app, web.session.DiskStore('sessions'),
  144.                               initializer={'user': None})
  145. def session_hook():
  146.     web.ctx.session = session
  147. app.add_processor(web.loadhook(session_hook))
  148.  
  149. if __name__ == "__main__":
  150.         app.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement