特定のディレクトリ( "/ data/file/transfer")にすべてのファイルとサブディレクトリを表示しようとしています。
今私は、この問題は2番目のレベルのサブディレクトリにあるこのファイルを取得しています。私はJinjaテンプレートを使用してページを表示しています。ファイルget_this_file.txtは、第一/第二/ディレクトリ/に/データ/ファイル/転送され
Python、Flask、Jinja:ディレクトリとファイルの一覧表示:hrefが正しく設定されていません
/data/
----file/
--------transfer/
-------------first/
----------------second/
-------------------get_this_file.txt
:よう
のディレクトリ構造が見えます。
#! /usr/bin/env python
from flask import Flask,render_template, send_file
import os
import sys
app = Flask(__name__)
@app.route("/list_data", defaults={'req_path': ''})
@app.route('/<path:req_path>')
def incident_data(req_path):
base_dir = "/data/file/transfer/"
abs_path = os.path.join(base_dir, req_path)
if os.path.isfile(abs_path):
return send_file(abs_path)
final_files = []
if os.path.isdir(abs_path):
files = os.listdir(abs_path)
for file in files:
temp_file = req_path + "/" + file
print temp_file
final_files.append(temp_file)
return render_template('files.html', files=final_files)
if __name__ == "__main__":
app.config.update(dict(
DEBUG=True,
SECRET_KEY=b'_isecret/'
))
app.run(host="0.0.0.0", port=8080)
私のテンプレート/ files.html以下の通りです:
<ul>
{% for file in files %}
<li><a href="{{ file }}">{{ file }}</a></li>
{% endfor %}
</ul>
OUTPUT:クロムの
:
192.168.168.xxx:8080/第1 /第2
第一/第二/ get_this_file.txt <は---(クリックされた場合) 192.168.168.xxx:8080/ 最初/第
カント/second/get_this_file.txt get_this_fileため理由HREFを理解します.txtが間違っています。
ご協力いただければ幸いです。これに長い間苦しんでいる。
+1 hrefの問題を解消するために...ありがとうございます。Raja Simon、あなたが言及しているように、スラッシュを追加しました。これはhrefの問題を解決しました。しかし、//192.168.168.xxx:8080/list_dataに行くと "/ first"と表示され、/ firstをクリックするとDNSアドレスに行き、エラーが見つかりませんでした。ページのリンクが「最初/」になります。 –
私は自分の質問を更新しました。私に教えてください... –
パーフェクト!私のために働く。おかげで多くのラジャサイモン!!! :) –