Skip to main content
 首页 » 编程设计

python之for loop inside a flask function之内部服务器错误

2025年05月04日15小虾米

我正在尝试使用 flask 框架和 jinja 模板打印斐波那契数列。 下面的程序给我一个 505 内部服务器错误! 但是当我在函数内评论 for 循环时,它给了我正确的结果

斐波那契URL.py

from flask import Flask 
from jinja2 import Environment, PackageLoader 
 
app= Flask(__name__) 
 
def fib(num): 
    if num==1 or num==0: 
        return num 
    else: 
        return fib(num-1)+fib(num-2) 
 
@app.route('/fib/<number>') 
def generate_fibonacci(number): 
 
    env= Environment(loader=PackageLoader('Fibonacci','templates')) 
    fibMap={} 
   #for x in range(number): 
   #      fibMap[i]=fib(i) 
 
 
    for i in range(0,number): 
       print 'Hello' 
#pass 
 
    template= env.get_template('table_template.html') 
    return template.render(num=3,map={1:1,2:2,3:3}) 
#return 'wda'     
 
if __name__ =='__main__': 
    app.run(host='0.0.0.0') 

我的 table_template.html 是

<table> 
   {%for i in range(1,num)%} 
    <tr> 
    <td>{{i}}</td> 
    <td>{{map[i]}}</td> 
    </tr> 
   {% endfor %} 
 
</table> 

没有for循环,页面显示的是预期的结果

请您参考如下方法:

路由参数<number>以字符串的形式提供给您,而不是整数。

如果你想让 Flask 给你一个数值,在路由配置中这样告诉它:

@app.route('/fib/<int:number>') 

参见 Variable Rules section在快速入门中。