Eurasia/框架功能介绍

来自站长百科
跳转至: 导航、​ 搜索

模板:Eurasia top 这里介绍一些有用的框架工具。

使用sleep暂停线索[ ]

core.sleep(sec) 是标准库 time.sleep() 在框架中的替代实现:

from eurasia.core import sleep

...

sleep(0.5) # 程序暂停 0.5 秒

...

创建协程[ ]

在 eurasia 中可以直接使用 greenlet 库创建协程。

from time import time
from eurasia.greenlet import greenlet
from eurasia.core import sleep, mainloop
def loop():
    while 1:
        print time()
        sleep(1.)

greenlet(loop).switch()
mainloop()

调试[ ]

通过设置 core.excepthook 安装调试钩子。

# -*- coding: utf-8 -*-
import sys, traceback
from eurasia import core
from eurasia.web import httpserver, mainloop

# 安装调试钩子
def excepthook():
    traceback.print_exc(file=sys.stderr)
core.excepthook = excepthook

def handler(httpfile):
    print not_exists # 这里会报错,变量 not_exists 不存在
    httpfile.close()

httpd = httpserver(('', 8080), handler)
httpd.start()
mainloop()

发布产品时,通过 core.without_excepthook() 调用忽略调试钩子。

# -*- coding: utf-8 -*-
import sys, traceback
from eurasia import core
from eurasia.web import httpserver, mainloop

# 安装调试钩子
def excepthook():
    traceback.print_exc(file=sys.stderr)
core.excepthook = excepthook

...

core.without_excepthook() # 忽略前面设置的调试钩子

配置文件[ ]

eurasia.pyetc 模块为配置文件的读取提供了支持。eurasia 认为使用 python 语法来编写配置文件是个好主意。

pyetc 中的 load(filename, **env) 函数能读取指定的 python 源码文件(文件后缀并不需要一定是“.py”), 并设定配置文件中的可见环境 env。

load 函数能将指定源码文件转换成 python 模块并返回。

我们首先编写一个名为 httpd.conf 的配置文件:

Server(controller='Products.default.controller'
        port=8080)

user = 'nobody'

下面是对于这个配置文件的解析:

from eurasia import pyetc
config = {}
def Server(**args):
        config.update(args)

mod = pyetc.load('httpd.conf', env={Server:Server})
print 'Server:', config
print 'user', mod.user

pyetc 模块可以被用于导入执行任意指定路径和文件后缀的 python 模块

参考来源[ ]

http://code.google.com/p/eurasia/wiki/eurasia_3_1_userguide

模板:Eurasia