首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python - flask - jinja2 -通过循环遍历值来动态生成路由和函数

Python - flask - jinja2 -通过循环遍历值来动态生成路由和函数
EN

Stack Overflow用户
提问于 2018-12-17 16:44:23
回答 1查看 324关注 0票数 0

嗨,我对flask和python还是个新手。

我正在尝试创建一个简单的web应用程序,其中列出了多个商店编号,并在点击超链接时下载了一个csv文件(我从SQL server获取此数据-将其放入一个数据框中,并使用to_csv将其动态转换为csv )

我的问题是-如何动态生成路由@app.route("/getCSV/“ def getCSV..)?

任何帮助都将不胜感激。

下面的情况下只包含2个商店,这可能会增加到5-或100以后..

我已经粘贴了下面的代码,我在html中使用Jinja模板。

app.py

代码语言:javascript
复制
from flask import Flask, render_template, redirect, request, Response
from datetime import datetime
import pandas as pd
import pyodbc


#Define app
app = Flask(__name__)

#Db connection
ikbconn = pyodbc.connect('Driver={SQL Server};Server=xxxxx;Database=xx;uid=sa;pwd=xxxxx')

storelist = ['11','72']


@app.route("/")
def hello():
    return render_template('template.html',my_storelist = storelist)


@app.route("/getCSV/11")
def getCSV11():
        selectquery = "EXEC temp_POGListSP" + " " + "11"
        data = pd.read_sql(selectquery, ikbconn)
        csv11 = data.to_csv()
        return Response(
            csv11,mimetype="text/csv",headers={"Content-disposition":"attachment; filename=POGList_11.csv"})

@app.route("/getCSV/72")
def getCSV72():
        selectquery = "EXEC temp_POGListSP" + " " + "72"
        data = pd.read_sql(selectquery, ikbconn)
        csv72 = data.to_csv()
        return Response(
            csv72,mimetype="text/csv",headers={"Content-disposition":"attachment; filename=POGList_72.csv"})

app.run(debug=True)

template.html

代码语言:javascript
复制
<html>
    <body>
        <h2>Planogram List for Stores</h2>

        {% for n in my_storelist %}

        <p><a href="/getCSV/{{ n }}"> {{ n }} </a></p>

        {% endfor %}

    </body>
</html>
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53811552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档