2016-10-06 3 views
0

У меня есть простая флеш-приложение с папкой шаблонов с кучей html-файлов, созданных отдельной программой. Я хочу (1) обслуживать каждый из этих html-файлов, нажав localhost:8888/<html_filename> и (2) создать каталог с гиперссылками на эти конечные точки на моей основной / конечной точке.Создать каталог динамически создаваемых html-файлов. Flask

Мысли о том, как я могу получить шаблон jinja для создания ссылок на эти конечные точки? Вот что я думал.

Колба App:

@app.route('/') 
def index(): 
    reports = [f_name for f_name in os.listdir("templates") if f_name.endswith(".html")] 
    return render_template("index.html", reports=reports) 

@app.route('/<report>') 
def render_report(report): 
    return render_template(report+'.html') 

index.html:

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <title>Report Directory</title> 
    </head> 
    <body> 
     <ul> 
     {% for r in reports %} 
      <li> 
       <a href="{{ r }}">{{ r }}</a> 
      </li> 
     {% endfor %} 
     </ul> 
    </body> 
</html> 

ответ

0

Off верхней части моей головы и не тестируется каким-либо образом определить маршрут вдоль линий следующее:

@route("/<string:slug>/", methods=['GET']) 
def page(self, slug): 

    if slug_exists_as_a_html_file(slug): 

     return render_template(slug) 

    abort(404) 

Функция (или встроенная она)) slug_exists_as_a_html_file необходимо вернуть True, если слизь соответствует действующему h tml, иначе false.

Чтобы сгенерировать отчет листинга использовать что-то вроде:

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <title>Report Directory</title> 
    </head> 
    <body> 
     <ul> 
     {% for r in reports %} 
      <li> 
       <a href="{{ url_for('page', slug=r) }}">{{ r }}</a> 
      </li> 
     {% endfor %} 
     </ul> 
    </body> 
</html> 
Смежные вопросы