如何在Flask中导入/合并基本python脚本而不在路由中调用它?
使用Flask,我理解了如何让不同的python函数根据您输入的URL执行不同的操作 然而,我想知道如何/是否有可能将驻留在不同文件夹中的python脚本合并到flask框架中 以下面这个非常基本的烧瓶应用程序为例如何在Flask中导入/合并基本python脚本而不在路由中调用它?,python,web-applications,flask,Python,Web Applications,Flask,使用Flask,我理解了如何让不同的python函数根据您输入的URL执行不同的操作 然而,我想知道如何/是否有可能将驻留在不同文件夹中的python脚本合并到flask框架中 以下面这个非常基本的烧瓶应用程序为例 from flask import Flask, render_template, request app = Flask(__name__) @app.route("/") def hello(): return render_template('echo.html')
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route("/")
def hello():
return render_template('echo.html')
@app.route("/test_one")
def test():
return("Hello world")
例如,我如何从flask框架中的一个文件夹中“调用”一个单独的python脚本,该文件夹打印一些文本,但这不仅仅是一个连接到其中一个路由的基本函数
我们的想法是将此概念应用于执行BLAST搜索的更复杂的python脚本。您可以将其作为模块导入。假设您有另一个文件functions.py位于同一文件夹中。该文件包含许多函数,包括
printdummy()
,它只打印Hello world代码>语句。
您的新代码应该如下所示:
from flask import Flask, render_template, request
from functions import printdummy
app = Flask(__name__)
@app.route("/")
def hello():
return render_template('echo.html')
@app.route("/test_one")
def test():
return(printdummy())
要将驻留在不同文件夹中的python脚本合并到flask框架中,例如
/路径\u到\u FLASK/hello.py
/其他路径/blast.py(注:需要biopython)
运行它
python hello.py
你得到
<?xml version="1.0"?>
<!DOCTYPE BlastOutput PUBLIC "-//NCBI//NCBI BlastOutput/EN" "http://www.ncbi.nlm.nih.gov/dtd/NCBI_BlastOutput.dtd">
<BlastOutput>
<BlastOutput_program>blastn</BlastOutput_program>
<BlastOutput_version>BLASTN 2.6.1+</BlastOutput_version>
<BlastOutput_reference>Stephen F. Altschul, Thomas L. Madden, Alejandro A. Sch&auml;ffer, Jinghui Zhang, Zheng Zhang, Webb Miller, and David J. Lipman (1997), "Gapped BLAST and PSI-BLAST: a new generation of protein database search programs", Nucleic Acids Res. 25:3389-3402.</BlastOutput_reference>
<BlastOutput_db>nt</BlastOutput_db>
<BlastOutput_query-ID>Query_13451</BlastOutput_query-ID>
<BlastOutput_query-def>No definition line</BlastOutput_query-def>
<BlastOutput_query-len>502</BlastOutput_query-len>
<BlastOutput_param>
<Parameters>
<Parameters_expect>10</Parameters_expect>
<Parameters_sc-match>2</Parameters_sc-match>
<Parameters_sc-mismatch>-3</Parameters_sc-mismatch>
<Parameters_gap-open>5</Parameters_gap-open>
<Parameters_gap-extend>2</Parameters_gap-extend>
<Parameters_filter>L;m;</Parameters_filter>
</Parameters>
</BlastOutput_param>
<BlastOutput_iterations>
<Iteration>
<Iteration_iter-num>1</Iteration_iter-num>
<Iteration_query-ID>Query_13451</Iteration_query-ID>
<Iteration_query-def>No definition line</Iteration_query-def>
<Iteration_query-len>502</Iteration_query-len>
<Iteration_hits>
<Hit>
<Hit_num>1</Hit_num>
<Hit_id>gi|725611268|gb|KM660696.1|</Hit_id>
<Hit_def>Bacillus cereus strain MGH118 16S ribosomal RNA gene, partial sequence</Hit_def>
<Hit_accession>KM660696</Hit_accession>
<Hit_len>1447</Hit_len>
<Hit_hsps>
<Hsp>
<Hsp_num>1</Hsp_num>
<Hsp_bit-score>874.117</Hsp_bit-score>
<Hsp_score>968</Hsp_score>
<Hsp_evalue>0</Hsp_evalue>
<Hsp_query-from>1</Hsp_query-from>
<Hsp_query-to>502</Hsp_query-to>
<Hsp_hit-from>1447</Hsp_hit-from>
<Hsp_hit-to>948</Hsp_hit-to>
<Hsp_query-frame>1</Hsp_query-frame>
<Hsp_hit-frame>-1</Hsp_hit-frame>
<Hsp_identity>496</Hsp_identity>
<Hsp_positive>496</Hsp_positive>
<Hsp_gaps>2</Hsp_gaps>
<Hsp_align-len>502</Hsp_align-len>
<Hsp_qseq>AAAGGTTACCCCCACCGACTTTCGGGTGTTACAAACTCTTCGTGGTGTGACNGGGCGGTGTGTACAAGGCCCCGGGAAACGTANTTCANCCGCGGCATGCTGATCCGCGATTACTAGCGATTCCAGCTTCATGTAGGCGAGTTGCAGCCTACAATCCGAACTGAGAACGGTTTTATGAGATTAGCTCCACCTCGCGGTCTTGCAGCTCTTTGTACCGTCCATTGTAGCACGTGTGTAGCCCAGGTCATAAGGGGCATGATGATTTGACGTCATCCCCACCTTCCTCCGGTTTGTCACCGGCAGTCACCTTAGAGTGCCCAACTGAATGATGGCAACTAAGATCAAGGGTTGCGCTCGTTGCGGGACTTAACCCAACATCTCACGACACGAGCTGACGACAACCATGCACCACCTGTCACTCTGCTCCCGAAGGAGAAGCCCTATCTCTAGGGTTGTCAGAGGATGTCAAGACCTGGTAAGGTTCTTCGCGTTGCTTCGAATT</Hsp_qseq>
<Hsp_hseq>AAAGGTTACCCCCACCGACTTTCGGGTGTTACAAACTCTTCGTGGTGTGACGGGCCGGTGTGTACAAGGCCCCGGGAA-CGTA-TTCACCCGCGGCATGCTGATCCGCGATTACTAGCGATTCCAGCTTCATGTAGGCGAGTTGCAGCCTACAATCCGAACTGAGAACGGTTTTATGAGATTAGCTCCACCTCGCGGTCTTGCAGCTCTTTGTACCGTCCATTGTAGCACGTGTGTAGCCCAGGTCATAAGGGGCATGATGATTTGACGTCATCCCCACCTTCCTCCGGTTTGTCACCGGCAGTCACCTTAGAGTGCCCAACTTAATGATGGCAACTAAGATCAAGGGTTGCGCTCGTTGCGGGACTTAACCCAACATCTCACGACACGAGCTGACGACAACCATGCACCACCTGTCACTCTGCTCCCGAAGGAGAAGCCCTATCTCTAGGGTTGTCAGAGGATGTCAAGACCTGGTAAGGTTCTTCGCGTTGCTTCGAATT</Hsp_hseq>
<Hsp_midline>||||||||||||||||||||||||||||||||||||||||||||||||||| || ||||||||||||||||||||||| |||| |||| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||</Hsp_midline>
</Hsp>
</Hit_hsps>
</Hit>
</Iteration_hits>
<Iteration_stat>
<Statistics>
<Statistics_db-num>41176984</Statistics_db-num>
<Statistics_db-len>113854703</Statistics_db-len>
<Statistics_hsp-len>0</Statistics_hsp-len>
<Statistics_eff-space>0</Statistics_eff-space>
<Statistics_kappa>0.41</Statistics_kappa>
<Statistics_lambda>0.625</Statistics_lambda>
<Statistics_entropy>0.78</Statistics_entropy>
</Statistics>
</Iteration_stat>
</Iteration>
</BlastOutput_iterations>
</BlastOutput>
序列比对分析
BLASTN 2.6.1+
斯蒂芬·阿尔特舒尔、托马斯·L·马登、亚历杭德罗·A·施和;auml;张景辉,张铮,韦伯·米勒和大卫·J·利普曼(1997),“间隙BLAST和PSI-BLAST:新一代蛋白质数据库搜索程序”,核酸研究,25:3389-3402。
新界
查询13451
没有定义行
502
10
2.
-3
5.
2.
LM
1.
查询13451
没有定义行
502
1.
gi | 725611268 | gb | KM660696.1|
蜡样芽孢杆菌菌株MGH118 16S核糖体RNA基因,部分序列
660696公里
1447
1.
874.117
968
0
1.
502
1447
948
1.
-1
496
496
2.
502
阿加格塔卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡TGCGCTCGTTGCGGGACTTAACCACATCTCACGACACACACATGCACCACCTCTCTCTCTCTCTCGCGCCGAAGGAGAGACCCTACTCTCTAGGTTCAGAGAGAGATGTCAAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAG
AAGGTTACCCCCCGACTTTCGGGTGTTACACAGACTTCGGTCGGTCTGTGTGTACCAGCCCCGGGAA-CGTA-TTCACCGCGGCATGCTGATGCATACTAGCGATGCAGTCAGTCTCAGTCTCATGCAGTCATCGAGTTGCAGCTCAATCCAGAGAGAGATCGTTAGATTCAGTCAGTCAGTCTCAGATTCAGTCAGGTAGTCAGGTAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCTGCGCTCGTTGCGGGACTTAACCACATCTCACGACACACACATGCACCACCTCTCTCTCTCTCTCGCGCCGAAGGAGAGACCCTACTCTCTAGGTTCAGAGAGAGATGTCAAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAG
||||||||||||||||||||||||||||||||||||||||||||||||||| || ||||||||||||||||||||||| |||| |||| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
41176984
113854703
0
0
0.41
0.625
0.78
谢谢您的帮助!我按照您的指示操作,但当我尝试通过Pycharm运行它时,我收到错误消息:“print_dummy():^SyntaxError:invalid syntax”这是“functions”文件中唯一的函数,它的编写方式与print_dummy()类似:return“Hello world!”嗨!只是想知道它对我有用@Frodobaggins我猜您在函数定义的开头缺少def
?它应该是def print\u dummy():…
python hello.py
<?xml version="1.0"?>
<!DOCTYPE BlastOutput PUBLIC "-//NCBI//NCBI BlastOutput/EN" "http://www.ncbi.nlm.nih.gov/dtd/NCBI_BlastOutput.dtd">
<BlastOutput>
<BlastOutput_program>blastn</BlastOutput_program>
<BlastOutput_version>BLASTN 2.6.1+</BlastOutput_version>
<BlastOutput_reference>Stephen F. Altschul, Thomas L. Madden, Alejandro A. Sch&auml;ffer, Jinghui Zhang, Zheng Zhang, Webb Miller, and David J. Lipman (1997), "Gapped BLAST and PSI-BLAST: a new generation of protein database search programs", Nucleic Acids Res. 25:3389-3402.</BlastOutput_reference>
<BlastOutput_db>nt</BlastOutput_db>
<BlastOutput_query-ID>Query_13451</BlastOutput_query-ID>
<BlastOutput_query-def>No definition line</BlastOutput_query-def>
<BlastOutput_query-len>502</BlastOutput_query-len>
<BlastOutput_param>
<Parameters>
<Parameters_expect>10</Parameters_expect>
<Parameters_sc-match>2</Parameters_sc-match>
<Parameters_sc-mismatch>-3</Parameters_sc-mismatch>
<Parameters_gap-open>5</Parameters_gap-open>
<Parameters_gap-extend>2</Parameters_gap-extend>
<Parameters_filter>L;m;</Parameters_filter>
</Parameters>
</BlastOutput_param>
<BlastOutput_iterations>
<Iteration>
<Iteration_iter-num>1</Iteration_iter-num>
<Iteration_query-ID>Query_13451</Iteration_query-ID>
<Iteration_query-def>No definition line</Iteration_query-def>
<Iteration_query-len>502</Iteration_query-len>
<Iteration_hits>
<Hit>
<Hit_num>1</Hit_num>
<Hit_id>gi|725611268|gb|KM660696.1|</Hit_id>
<Hit_def>Bacillus cereus strain MGH118 16S ribosomal RNA gene, partial sequence</Hit_def>
<Hit_accession>KM660696</Hit_accession>
<Hit_len>1447</Hit_len>
<Hit_hsps>
<Hsp>
<Hsp_num>1</Hsp_num>
<Hsp_bit-score>874.117</Hsp_bit-score>
<Hsp_score>968</Hsp_score>
<Hsp_evalue>0</Hsp_evalue>
<Hsp_query-from>1</Hsp_query-from>
<Hsp_query-to>502</Hsp_query-to>
<Hsp_hit-from>1447</Hsp_hit-from>
<Hsp_hit-to>948</Hsp_hit-to>
<Hsp_query-frame>1</Hsp_query-frame>
<Hsp_hit-frame>-1</Hsp_hit-frame>
<Hsp_identity>496</Hsp_identity>
<Hsp_positive>496</Hsp_positive>
<Hsp_gaps>2</Hsp_gaps>
<Hsp_align-len>502</Hsp_align-len>
<Hsp_qseq>AAAGGTTACCCCCACCGACTTTCGGGTGTTACAAACTCTTCGTGGTGTGACNGGGCGGTGTGTACAAGGCCCCGGGAAACGTANTTCANCCGCGGCATGCTGATCCGCGATTACTAGCGATTCCAGCTTCATGTAGGCGAGTTGCAGCCTACAATCCGAACTGAGAACGGTTTTATGAGATTAGCTCCACCTCGCGGTCTTGCAGCTCTTTGTACCGTCCATTGTAGCACGTGTGTAGCCCAGGTCATAAGGGGCATGATGATTTGACGTCATCCCCACCTTCCTCCGGTTTGTCACCGGCAGTCACCTTAGAGTGCCCAACTGAATGATGGCAACTAAGATCAAGGGTTGCGCTCGTTGCGGGACTTAACCCAACATCTCACGACACGAGCTGACGACAACCATGCACCACCTGTCACTCTGCTCCCGAAGGAGAAGCCCTATCTCTAGGGTTGTCAGAGGATGTCAAGACCTGGTAAGGTTCTTCGCGTTGCTTCGAATT</Hsp_qseq>
<Hsp_hseq>AAAGGTTACCCCCACCGACTTTCGGGTGTTACAAACTCTTCGTGGTGTGACGGGCCGGTGTGTACAAGGCCCCGGGAA-CGTA-TTCACCCGCGGCATGCTGATCCGCGATTACTAGCGATTCCAGCTTCATGTAGGCGAGTTGCAGCCTACAATCCGAACTGAGAACGGTTTTATGAGATTAGCTCCACCTCGCGGTCTTGCAGCTCTTTGTACCGTCCATTGTAGCACGTGTGTAGCCCAGGTCATAAGGGGCATGATGATTTGACGTCATCCCCACCTTCCTCCGGTTTGTCACCGGCAGTCACCTTAGAGTGCCCAACTTAATGATGGCAACTAAGATCAAGGGTTGCGCTCGTTGCGGGACTTAACCCAACATCTCACGACACGAGCTGACGACAACCATGCACCACCTGTCACTCTGCTCCCGAAGGAGAAGCCCTATCTCTAGGGTTGTCAGAGGATGTCAAGACCTGGTAAGGTTCTTCGCGTTGCTTCGAATT</Hsp_hseq>
<Hsp_midline>||||||||||||||||||||||||||||||||||||||||||||||||||| || ||||||||||||||||||||||| |||| |||| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||</Hsp_midline>
</Hsp>
</Hit_hsps>
</Hit>
</Iteration_hits>
<Iteration_stat>
<Statistics>
<Statistics_db-num>41176984</Statistics_db-num>
<Statistics_db-len>113854703</Statistics_db-len>
<Statistics_hsp-len>0</Statistics_hsp-len>
<Statistics_eff-space>0</Statistics_eff-space>
<Statistics_kappa>0.41</Statistics_kappa>
<Statistics_lambda>0.625</Statistics_lambda>
<Statistics_entropy>0.78</Statistics_entropy>
</Statistics>
</Iteration_stat>
</Iteration>
</BlastOutput_iterations>
</BlastOutput>