一 、request
主要全局变量如下:
request:请求信息
args:所有参数,包括user和route信息
data :行数据
User: 用户信息
def main(Request): return [(q, Request.Headers[q]) for q in Request.Headers ] main
运行 -web:函数级别,全局变量拿不到
运行-www: class级别,全局变量能拿到
全局变量放入类()括号中,结尾不要带(),带()则变成函数
def main(args): return args main
{
"_oschm": "test", "_oname": "test1", "_omethod": "lxg2", "area": "core", "controller": "upython", "action": "api2", "rel": "dd_mvc2", "pymethod": "act", "uid": "b526cea5-fe6d-11eb-91ae-fa163e25c4e3", "urole": "999,700,998,600,995,996,997"
"filter":用于过滤业务数据 }
权限控制:
用role控制菜单、按钮、api ,
用filter过滤业务数据,如河北省用户只看河北省市县, 必须与业务数据表的定义相结合。
二、response 常用
1、返回json
def main(): return { "success" : 1, "message" : "done!", "data" : [ { "id":1,"text" : "male" }, { "id":2,"text" : "female" } ] } main
2、用controller.Action
(1)redirect : 跳转其他页面
(2)transfer:打来其他页面
(3)下载文件、打开文件等
关于 controller.Action的用法, 去 five五管平台查询 datagrid/dd_api 表单, 然后按脚本,能找到例子
关于response跳转
ar()用的比较多,与controller.Action区别不大,以下是ar()的例子, 开发者推荐用ar()
那,关于ar()的用法,就参考https://www.equiclouds.com/doc/py#/en-web_response吧
def tzjk_hz(ar,User): if '600' in User.Roles or '500' in User.Roles: return ar(redirect="/core/uform/query/tk_tzjkjc_hz_sheng") if '400' in User.Roles: return ar(redirect="/core/uform/query/tk_tzjkjc_hz_shi") if '300' in User.Roles: return ar(redirect="/core/uform/query/tk_tzjkjc_hz_qu") tzjk_hz
https://www.equiclouds.com/doc/py#/en-web_response
三、工作流
(1)状态
[ [0,1], 0,1分别定义待提交、已提交的状态 ['待提交','已提交'], ['300,400,500,600','300,400,500,600'], 待提交和已提交分别什么角色可看 ['300,400,500,600','400,500,600'] 什么角色可操作,更改状态 ]
(2)
[ [[4],['提交'],[0]], 4是提交操作,作用在0状态 [[3],['退回修改'],[1]] 3是退回操作,作用在1状态 ]
(3)
[ [0,4,1], 0状态,经过4操作,变成1状态 [1,3,0] 1状态,经过3操作,变成0状态 ]
四、调试
页面显示错误
return jh.Error('无权限')
查询日志 lh.debug('')
五、页面 view开发
(1) 前台view开发 :继承或参考模板 dd.cms._layout
(2)后台页面开发
小tab标签页: 模板: dd.pue._miniui
进度统计,后台消息通知首页、变更密码等,模板 :dd.pue._vueboot
需要用bootstrap,可以自己在线引入库
(3)重做一个后台页面:模板 /view/dd/cms/admin
(4)还有自定义的列表可以参考下图