for循环内烧瓶功能 - 内部服务器错误

use*_*349 1 python jinja2 flask

我正在尝试使用flask框架和jinja模板打印一个数字的fibonacci系列.以下程序给我一个505内部服务器错误!但是当我在函数内部注释for循环时,它会给我正确的结果

fibonacciURL.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')
Run Code Online (Sandbox Code Playgroud)

我的table_template.html是

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

</table>
Run Code Online (Sandbox Code Playgroud)

如果没有for循环,页面将显示预期结果

Mar*_*ers 6

route参数<number>字符串形式提供给您,而不是整数.

如果您希望Flask为您提供数值,请在路径配置中告知它:

@app.route('/fib/<int:number>')
Run Code Online (Sandbox Code Playgroud)

请参阅快速入门中的" 变量规则"部分.