This commit is contained in:
yumoqing 2025-11-18 15:24:37 +08:00
parent b4547f3f0b
commit 359c21929a
2 changed files with 55 additions and 4 deletions

View File

@ -26,6 +26,7 @@ class AHApp(web.Application):
def __init__(self, *args, **kw):
if not kw.get('client_max_size'):
kw['client_max_size'] = 1024000000
debug(f"client_max_size={kw['client_max_size']}")
super().__init__(*args, **kw)
self.user_data = DictObject()
self.middlewares.insert(0, real_ip_middleware())
@ -51,7 +52,7 @@ class ConfiguredServer:
self.config = config
initEnv()
setupTemplateEngine()
client_max_size = 1024 * 10240
client_max_size = 1024000000
if config.website.client_max_size:
client_max_size = config.website.client_max_size

View File

@ -32,13 +32,13 @@ mymodule
+--__init__.py #python模块所需
+--wwwroot目录 # web服务脚本文件.ui和.dspy结束ui文件支持jinja2模板前端控件文件内容为json格式的控件描述文本 dspy是ahserver支持的受限python脚本可以按照需要设置下级目录
+--wwwroot目录 # web服务脚本文件.ui和.dspy结束ui文件支持jinja2模板前端控件文件内容为json格式的控件描述文本 dspy是ahserver支持的受限python脚本可以按照需要设置下级目录
+--models目录 # xlsx格式的数据库描述文件用开创建模块所需的数据库表
+--models目录 # 模块使用的数据表以.xlsx后缀存放在此目录中
+--json目录 # 存放json文件定义数据表的CRUD逻辑
+--pyproject.toml文件 # pip打包文件
+--pyproject.toml文件 # pip打包文件, 其中项目名字与mymodule相同
+--README.md文件 # 模块自说明文件
@ -49,3 +49,53 @@ mymodule
+--script.py # 初始化脚本
```
## 数据表文件说明
数据表文件也是模块的源码,文件名称放在二级标题上,内容包括:
* 表功能说明
* 数据字段列表
## 数据表crud的json文件
模块中的每个数据表都需要一个json文件放在模块的json目录下
数据表json文件也是模块的源码文件名称放在二级标题上内容包括
* 树状结构或列表结构
* 哪些字段列表不显示
* 哪些字段编辑时不编辑
* 哪些字段时敏感信息
* 本表的主键是哪些表的外键,以{field: subtable_field, subtable: thattable} 形式给出
## 代码分布要求
* 模块中的主要逻辑用py源码实现放在mymodule目录下
* 客户端业务功能放在wwwroot目录下以.ui后缀结束用jinja2执行服务器端逻辑
* 返回客户端数据的功能放在wwwroot目录下以.dspy后缀结束
## ui, dspy可以直接使用的变量
### request
aiohttp.Request实例每个客户端请求有一个独立的Request实例
request._run_ns可以获得所有在.ui和.dspy源码中可以使用的变量通过ahserver.ServerEnv 传递
### params_kw
DictObjectdict子类, 支持a.b方式获取属性实例接收到客户端传来的数据如果有文件文件都保存在服务器指定的位置params_kw中属性名保存的是其相对路径可用FileStorage().realPath(params_kw.myfile)来获得文件在服务器中的实际路径。
### get_user()
来自rbac模块协程函数获得当前登录用户如果用户没有登录返回None
### get_userorgid()
来自rbac模块协程函数获得当前登录用户的机构id如果用户没有登录返回None
### pyproject.toml和README.md
编写完成的pyproject.toml文件和README.md文件