pyList

SAE+python+Tornado+pyTenjin 的完整示例

python 简单易懂,Tornado 高效易学,pyTenjin 轻巧快速,SAE 安全稳定使用门槛低。现在把他们结合在一起做了一个可运行在SAE 上的完整示例。

风格和源码跟SAEpy-LOG 94 相同,还是简单介绍一下。

文件目录结构:

|-- 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

# -*- 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

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

# -*- 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/ 12

本文标签: 示例 SAE python Tornado pyTenjin
本文网址: https://pylist.com/t/1328517600 (转载注明出处)
如果你有任何建议或疑问可以在下面 留言
发表第一条评论!
验证码图片
相关推荐