我是Flask的新手,想要使用以下基本示例(使用Flask-AutoIndex)来列出目录中的文件和文件夹:
import os.path
from flask import Flask
from flask.ext.autoindex import AutoIndex
app = Flask(__name__)
AutoIndex(app, browse_root=os.path.curdir)
if __name__ == '__main__':
app.run()
这个例子适用于我,
http://localhost/folder1/folder2
列出了folder2中的文件和文件夹。
我遇到的问题是这些网址已经绑定到其他一些功能用于其他目的,这使得AutoIndex无法正常工作(网址冲突)
是否可以将AutoIndex绑定到其中包含额外单词“list”的其他URL?类似的东西:
http://localhost/list/folder1/folder2/
http://localhost/list/folder1/folder2/folder3/
答案 0 :(得分:2)
我无法测试它,但AutoIndex包含一个AutoIndexBlueprint,所以我想知道你是否可以用它来收起它:
# bp.py
from flask import Blueprint
from flask.ext.autoindex import AutoIndexBlueprint
auto_bp = Blueprint('auto_bp', __name__)
AutoIndexBlueprint(auto_bp, browse_root='/tmp')
然后在您的应用上注册:
from bp import auto_bp
app.register_blueprint(auto_bp, url_prefix='/list')
答案 1 :(得分:1)
这对我有用:
files_index = AutoIndex(app, os.path.curdir + '/app/files', add_url_rules=False)
# Custom indexing
@app.route('/files')
@app.route('/files/<path:path>')
def autoindex(path='.'):
return files_index.render_autoindex(path)