150 lines
3.6 KiB
Markdown
150 lines
3.6 KiB
Markdown
# 脚本中可直接使用的变量
|
||
|
||
脚本是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文件系统路径
|
||
|