gramex - 是否可以将请求路径中的动态值分配给 FormHandler gramex-config 条目的“表”属性?
问题描述
下面对FormHandler-param-doc的参考
是示例 gramex-config 片段:
dburl: postgresql://$db_name:$db_name@localhost:5432/$db_name
data_filter:
pattern: /$YAMLURL/data_filter/(\w+)
handler: FormHandler
kwargs:
url: $dburl
table: {_0}
modify: data_filter.by_month_date(data)
table
是否可以为请求 URL 路径的一部分的属性动态分配值?对于示例请求,例如:
/data_filter/prod_rec_20?S_CODE=20&D_CODE=322&Market_Code=10753&Crop_Code=106
收到以下错误:
Traceback (most recent call last):
File "c:\programdata\anaconda3\lib\site-packages\gramex\handlers\formhandler.py", line 157, in get
result[key] = yield val
File "c:\programdata\anaconda3\lib\site-packages\tornado\gen.py", line 1133, in run
value = future.result()
File "c:\programdata\anaconda3\lib\concurrent\futures\_base.py", line 425, in result
return self.__get_result()
File "c:\programdata\anaconda3\lib\concurrent\futures\_base.py", line 384, in __get_result
raise self._exception
File "c:\programdata\anaconda3\lib\concurrent\futures\thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "c:\programdata\anaconda3\lib\site-packages\gramex\data.py", line 247, in filter
raise ValueError('No table: or query: specified')
ValueError: No table: or query: specified
解决方案
当然。请参阅https://learn.gramener.com/guide/formhandler/#formhandler-parameters
您可以指定table: '{_0}'
. 然后/data_filter/?table=prod_rec_20
会工作。
table: {_0}
但是,没有引号是行不通的。YAML 将 解释{}
为一个对象。你需要引用'{_0}'
这个才能工作。(我测试了它,它工作正常。
推荐阅读
- python - 使用 Python 处理文件路径中的用户名
- android - 无法找出密码检查器 API 中的问题
- java - 大摇大摆地向枚举添加描述
- charts - 限制 ChartRangeFilter 中的滑块范围:Google Charts
- python - Openpyxl 没有正确使用公式
- sbt - 可以使用 SBT 将资源目录映射到 jar 中的备用位置吗?
- r - 规定当我将数据导出到 R 时 Excel 如何处理数据?
- vba - 在列中每个单元格的特定单词之后查找字符串?
- r - R中的V-lookup样式引用而不合并
- machine-learning - 卷积神经网络可视化——权重还是激活?