# 脚本中可直接使用的变量 脚本是wwwroot目录下的脚本文件包括:.ui, .dspy, .xterm后缀的脚本 ## request web服务器的request, ### request._run_ns DictObject实例,含所有可用的变量 ### request['client_ip'] 保存客户端实际的IP, 支持最多一层代理,多了就不能获得真实的客户ip ## params_kw DictObject(dict子类, 支持a.b方式获取属性)实例,接收到客户端传来的数据,如果有文件,文件都保存在服务器指定的位置,params_kw中属性保存的是其相对路径,可用FileStorage().realPath(params_kw.myfile)来获得文件在服务器中的实际路径。 ### get_user() 来自rbac模块,协程函数,获得当前登录用户,如果用户没有登录,返回None ### get_userorgid() 来自rbac模块,协程函数,获得当前登录用户的机构id,如果用户没有登录,返回None ### json python的json模块 ### ArgsConvert ### time python的time模块 ### curDateString 函数,获得当前日期字符串,格式为“yyyy-mm-dd“ ### curTimeString 函数,获得当前时间字符串,格式为”HH:MM:SS“ ### datetime python的datetime模块 ### random python的random模块 ### str2Date 函数,将字符串格式的日期转换为datetime日期实例 ### str2Datetime 函数,将"yyyy-mm-dd HH:MM:SS"字符串转换为datetime日期实例 ### timestampstr 函数,获得当前时间戳的字符串,格式“yyyy-mm-dd HH:MM:SS.xxx" ### monthfirstday 函数,获得日期参数的第一天 ### curDatetime 函数,获得当前时间的datetime日期实例 ### strdate_add 函数,在日期上增加多少天,月,年 ### uuid 函数,获得一个uuid ### DBPools ### DBFilter ### default_filterjson ### password_encode 函数,信息加密,返回加密后的字符串 ### password_decode 函数,信息解密,返回解密后的字符串 ### get_config_value 函数返回配置文件中的值 ### DictObject 数据类,支持a.b操作的字典 ### async_sleep 异步睡眠 ### quote url编码 ### realpath 函数,获得webpath的文件系统路径 ``` relp = realpath('/33/55/22/55/abc.doc') ### format_exc 函数,获得当前调用栈字符串 ``` e=Exception('TEST exception') exception(f'{e}{format_exc()}') ``` ### stream_response 协程,实现流式response给前端 ``` async def gen(request): cnt = 100000 i = 0 while i < cnt: yield ### webpath 函数,返回文件系统路径的webpath,必须是配置文件中files目录下的文件 ### partial python的partial函数 ### StreamHttpClient appPublic模块的StreamHttpClient类 ``` shc = StreamHttpClient() x = await shc.get('https://www.baidu.com') ``` ### tmpl_engine 支持异步的jinja2引擎, 例子: ``` tmpl='hello {{user}}' d = {'user': 'John'} s = tmpl_engine.renders(tmpl, d) ``` ### downloadfile2url 协程,从远端下载文件放到files目录下,并构造url可供客户端下载 ``` url = 'https://xxx.com/xxx.mp4' newurl = await downloadfile2url(request, url) ``` ### background_reco 函数,后台执行协程 ``` async def dummy(*args, **kw): while True: async_sleep(1) print('test') background_reco(dummy) ``` ### get_sor_context 异步上下午,获得sor上下文,用于操作数据库,以下两组代码等价: ``` async with sor.get_sor_context(env, dbname) as sor: ``` 与 ``` db = DBPools() async with db.sqlorContext(dbname) as sor: ``` ### json_response 函数,json格式数据构造Response,返回Response实例 ``` d = {"a":"B"} return json_response(d) ### Response aiohttp的Response类 ### web_rootpath 函数, 获得web应用的root文件系统路径