我想调用我在PostgreSQL数据库中创建的函数.我已经查看了官方SQLAlchemy文档以及SO上的几个问题,但似乎没有人解释如何在SQLAlchemy中设置该函数.
我确实找到了这个问题,但我不确定如何编译函数,如答案所示.该代码在哪里?当我尝试将它放在我的视图和模型脚本中时,我会收到错误.
编辑1(8/11/2016)
根据社区的要求和要求,以下是我遗漏的所有细节:
我有一张叫做书籍的书桌,其中的栏目有关于一般书籍(标题,作者,出版日期......)的信息.
然后,我有许多相同类型的表,其列包含有关每本书中所有章节的信息(章节名称,长度,简短摘要......).每本书都必须有自己的表格.我玩了一个包含所有章节的大桌子,发现它不适合我的需要,不用太笨重了.
我正在询问的关于查询书籍表格的个人书籍名称的功能,并将书籍的名称转换为注册表.然后它查询regclass对象的所有数据,将所有行作为表返回,如各个book表,并退出.这是原始代码:
CREATE OR REPLACE FUNCTION public.get_book(bookName character varying)
RETURNS TABLE(/*columns of individual book table go here*/)
LANGUAGE plpgsql
AS $function$
declare
_tbl regclass;
begin
for _tbl in
select name::regclass
from books
where name=bookName
loop
return query execute '
select * from ' ||_tbl;
end loop;
end;
$function$
Run Code Online (Sandbox Code Playgroud)
此功能已在命令行和pgAdmin中多次测试.它按预期工作.
我的目的是在我的Flask app中有一个视图,其路径是@app.route('/book/<string:bookName>')并在渲染模板之前调用上面的函数.确切的观点如下:
@app.route('/book/<string:bookName>')
def book(bookName):
chapterList = /*call function here*/
return render_template('book.html', book=bookName, list=chapterList)
Run Code Online (Sandbox Code Playgroud)
这是我的问题:如何以SQLAlchemy知道的方式设置我的应用程序并可以调用我在数据库中的函数?我也愿意接受其他建议,以达到同样的效果.
PS我只是忽略了这些信息,目的是让我的问题尽可能抽象,而不是知道论坛的规则规定了一个非常具体的问题的要求.请原谅我缺乏知识.
我对编程比较陌生; 我在大学的c ++课程介绍.
我如何将一个函数从函数返回到main?我没有看到任何回答这个问题的帖子足以让我理解.
提前致谢!
对于那些感兴趣的人,这是我写的代码让我提出这个问题.(注意:我的教授告诉我们在所有程序中包含cstdlib和iostream,并放在using namespace stdmain之前.我已经看过几篇帖子说不要使用它,但这就是我的教授让我们编写程序的方法.)
char evaluate(int score){
/*receives an int score out of 100 from main and determines what letter grade to return */
if (score >= 90 && score <= 100)
return "A";
else if (score >= 80 && score <= 89)
return "B";
else if (score >= 70 && score <= 79)
return "C";
else if (score >= 65 && score <= 65)
return "D";
else
return "F";
}
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我得到"错误:从'const char*'无效转换为'char'[-fpermissive]"
有什么想法吗?