-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcode.py
More file actions
117 lines (103 loc) · 3.58 KB
/
code.py
File metadata and controls
117 lines (103 loc) · 3.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# -*- coding: utf-8 -*-
import webapp2
import jinja2
import os
import logging
import json
import ConfigParser
import Post
import re
import HTMLParser
from BaseHandler import BaseHandler
blogconfig = ConfigParser.SafeConfigParser({'email': 'cabocha@163.com', 'password': '123456'})
blogconfig.read('blog.cfg')
JINJA_ENVIRONMENT = jinja2.Environment(
loader=jinja2.FileSystemLoader(os.path.dirname(__file__)),
extensions=['jinja2.ext.autoescape'],
autoescape=True)
def stripTags(html):
html = html.strip()
html = html.strip("\n")
result=[]
parse=HTMLParser.HTMLParser()
parse.handle_data=result.append
parse.feed(html)
parse.close()
return "".join(result)
class Index(webapp2.RequestHandler):
def get(self):
posts=Post.List()
ps=[]
for post in posts:
p={}
p["content"]=stripTags(post.content)
p["title"]=post.title
p["key"]=post.key.id()
ps.append(p)
template = JINJA_ENVIRONMENT.get_template('template/index.html')
self.response.write(template.render({"posts":ps}))
class View(webapp2.RequestHandler):
def get(self):
key=self.request.get("id")
post=Post.Get(key)
template = JINJA_ENVIRONMENT.get_template('template/post.html')
self.response.write(template.render({"post":post}))
class Login(BaseHandler):
def get(self):
template = JINJA_ENVIRONMENT.get_template('template/login.html')
self.response.write(template.render())
def post(self):
email=self.request.get('email')
password=self.request.get('password')
if blogconfig.get('admin', 'email')==email and blogconfig.get('admin', 'password')==password:
self.session['admin'] = 'logged'
self.redirect('/admin')
else:
self.response.write("ERROR")
class Admin(BaseHandler):
def get(self):
if (self.session.get('admin', '')!='logged'):
self.redirect('/login')
posts=Post.List()
template = JINJA_ENVIRONMENT.get_template('template/admin.html')
self.response.write(template.render({"posts":posts}))
class Edit(BaseHandler):
def get(self):
if (self.session.get('admin', '')!='logged'):
self.redirect('/login')
p=None
key=self.request.get("id")
if key!=None and key!="":
p=Post.Get(key)
template = JINJA_ENVIRONMENT.get_template('template/edit.html')
self.response.write(template.render({"post":p}))
class Save(BaseHandler):
def post(self):
if (self.session.get('admin', '')!='logged'):
self.redirect('/login')
key=self.request.get("key")
title=self.request.get("title")
content=self.request.get("content")
logging.info("#####################\n"+content)
Post.SavePost(key,title,content)
self.response.write("SUCCESS")
class Delete(BaseHandler):
def get(self):
if (self.session.get('admin', '')!='logged'):
self.redirect('/login')
key=self.request.get("id")
Post.Delete(key)
self.redirect('/admin')
config = {}
config['webapp2_extras.sessions'] = {
'secret_key': 'cabocha',
}
application = webapp2.WSGIApplication([
('/', Index),
('/view', View),
('/login', Login),
('/admin', Admin),
('/edit', Edit),
('/save', Save),
('/del', Delete),
], config=config, debug=True)