python 简单易懂,Tornado 高效易学,pyTenjin 轻巧快速,SAE 安全稳定使用门槛低。现在把他们结合在一起做了一个可运行在SAE 上的完整示例。
风格和源码跟SAEpy-LOG 相同,还是简单介绍一下。
文件目录结构:
1
2
3
4
5
6
7
8
9
10
11
12
|-- common.py 放一些通用的类、函数
|-- config.yaml SAE配置文件
|-- index.wsgi SAE 访问入口
|-- setting.py 自己应用的一些设置
|-- templates/ 默认模板文件夹
| |-- admin/ 管理员theme
| | `-- home.html
| `-- guest/ 浏览者theme
| |-- footer.html
| `-- home.html
|-- tenjin.py 修改后适合 SAE 的pyTenjin 模板引擎
`-- view.py 视图控制
主要文件源码
common.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# -*- coding: utf-8 -*-
import os.path
import tornado.web
import tenjin
from tenjin.helpers import *
from setting import *
engine = tenjin.Engine(path=[os.path.join('templates', theme) for theme in THEMES] + ['templates'], cache=tenjin.MemoryCacheStorage(), preprocess=True)
class BaseHandler(tornado.web.RequestHandler):
def render(self, template, context=None, globals=None, layout=False):
if context is None:
context = {}
return engine.render(template, context, globals, layout)
def echo(self, template, context=None, globals=None, layout=False):
self.write(self.render(template, context, globals, layout))
index.wsgi
1
2
3
4
5
6
7
8
9
10
11
12
13
import sae
import tornado.wsgi
from view import urls as view_url
settings = {
"debug" : True,
}
app = tornado.wsgi.WSGIApplication( view_url, **settings)
application = sae.create_wsgi_app(app)
view.py
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
# -*- coding: utf-8 -*-
from time import time
from common import BaseHandler
###############
class HomePage(BaseHandler):
def get(self):
self.echo('home.html', {
'title': "测试",
'name': "name text",
'timestamp': int(time()),
'html_text': "# H1标签",
})
class NotFoundPage(BaseHandler):
def get(self):
self.set_status(404)
self.write("404: Not found")
########
urls = [
(r"/", HomePage),
(r".*", NotFoundPage)
]
本例所有代码打包下载 http://code.google.com/p/sae-python-tornado-pytenjin-sample/
本文网址: https://pylist.com/topic/14.html 转摘请注明来源