web.py で小さなアプリを作成しましたが、正常に動作します。また、生成されてディレクトリ内のフォルダーにダンプされるいくつかの画像も提供しますstatic
。
また、 内のファイルとフォルダーのリストを表示できるようにしたいと考えていますstatic
。リストビューを有効にするにはどうすればよいですか?
通常、完全に「有効にする」ことはありません。しかし、いくつかの選択肢があります。
1) お気に入りの Web サーバーにモジュールとして統合します。lighttpd で FastCGI として実行する方法は次のとおりです。Apache と統合するためのオプションもあります。
詳細については、 webpy.orgを参照してください
server.modules += ( "mod_fastcgi" )
server.modules += ( "mod_rewrite" )
fastcgi.server = ( "/code.py" =>
(( "socket" => "/tmp/fastcgi.socket",
"bin-path" => "/path-to/webpy-app/code.py",
"max-procs" => 1,
"bin-environment" => (
"REAL_SCRIPT_NAME" => ""
),
"check-local" => "disable"
))
)
url.rewrite-once = (
"^/favicon.ico$" => "/static/favicon.ico",
"^/static/(.*)$" => "/static/$1",
"^/(.*)$" => "/code.py/$1",
)
2) または、それを処理するために Python アプリにコードを記述します。
class list:
def GET(self,irl):
thisfile = inspect.getfile(inspect.currentframe())
thispath = os.path.dirname(os.path.abspath(thisfile))
dir = os.listdir("%s/static/%s"%(thispath,irl))
rel = irl
files = []
folds = []
for item in dir:
if os.path.isfile("%s/static/%s/%s"%(thispath,irl,item)):
files.append(item)
elif item!='res':
folds.append(item)
return render.list(rel,folds,files)
...そしてテンプレートで...
$def with (rel,folds,files)
...
$if len(folds)>0:
$for fold in folds:
<a class='fold' href='/list$rel/$fold'>$fold</a>
...
$if len(files)>0:
$for file in files:
<a class='file' href='/$rel/$file'>$file</a>