我正在尝试创建一个 Flask 应用程序。我想在我的应用程序中包含一个单独的模块,以将逻辑分成不同的单元。单独的模块称为“验证器”,我当前的目录结构如下所示:
src/
validation-api/
__init__.py
api.py
validator/
__init__.py
validator.py
validation-form/
...
updater/
...
Run Code Online (Sandbox Code Playgroud)
我的 Flask 应用程序位于 中api.py,我正在尝试执行from validator import ValidationOptions, ValidationResult, ValidationRunwhere ValidationOptions、ValidationResult、 和ValidationRunare 中的类validator。
我收到错误
导入错误:没有名为验证器的模块
如果我尝试from .validator...或from ..validator收到错误
ValueError:尝试在非包中进行相对导入
我不太明白Python 中的模块和包是如何工作的。有什么建议么?
api.py的内容:
from flask import Flask, request
from validator.validator import ValidationOptions, ValidationResult, ValidationRun
app = Flask(__name__)
@app.route("/validate", methods=["POST"])
def validate(self):
pass
if __name__ == '__main__':
app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)
我使用以下三个命令启动 Flask:
set FLASK_APP=api
set FLASK_DEBUG=1 …Run Code Online (Sandbox Code Playgroud) 我想找到这个查询返回的每个主题是另一个三元组的对象的次数。
我可以使用以下示例来选择我想要的所有内容,而无需计算我想要的数量。
SELECT DISTINCT
?subject
?displayId
?version
?name
?description
?type
WHERE {
{ ?subject a sbol2:ComponentDefinition } UNION
{ ?subject a sbol2:ModuleDefinition } UNION
{ ?subject a sbol2:Collection } UNION
{ ?subject a sbol2:Sequence } UNION
{ ?subject a sbol2:Model } .
?subject a ?type
OPTIONAL { ?subject sbol2:displayId ?displayId . }
OPTIONAL { ?subject sbol2:version ?version . }
OPTIONAL { ?subject dcterms:title ?name . }
OPTIONAL { ?subject dcterms:description ?description . }
}
LIMIT 50
Run Code Online (Sandbox Code Playgroud)
我可以添加以下条件以将我的查询限制为仅与示例对象相关的事物,在本例中为具有 URI 的对象<http://localhost:7777/public/test/U49845/1> …