簡體   English   中英

bottle Web服務器:如何路由到文本文件

[英]bottle web server: how to route to text file

我正在使用bottle編寫Web應用程序。 我需要將某些文本文件傳遞給javascript函數,該函數處理該文件並在網絡上顯示圖像。

我希望能夠使用可變目錄(即

./database/*/CONTCAR.xyz

這樣我就可以調用形式為./database/6Ni@32Ag_npo/CONTCAR.xyz的URL,並獲得返回的CONTCAR.xyz,其中,每個URL的“ 6Ni @ 32Ag_npo”都不同。

這是我服務器中的東西

import bottle as b
@b.route('/database/<folder>/CONTCAR.xyz')
  def server_static(filename):
     return b.static_file( "CONTCAR.xyz" , root='./database/<folder>')

在我的JavaScript中,我嘗試按以下方式調用網址:

<canvas class='xyz' url='/database/6Ni@32Ag_npo/CONTCAR.xyz' filetype='xyz'></canvas>

xyz類是允許我處理此CONTCAR文件的類。

我收到以下錯誤:

TypeError:server_static()得到了意外的關鍵字參數“文件夾”本地主機--[19 / Jan / 2014 13:10:46]“ GET /database/6Ni@32Ag_npo/CONTCAR.xyz?uid=1390158646852 HTTP / 1.1” 500 794

您使用的是路徑路徑中的名稱folder ,但filename是唯一的參數名稱。 幸運的是,修復很容易:只需在兩個地方使用相同的名稱。 (並且還要更正您在static_fileroot參數中對folder的使用:

@b.route('/database/<folder>/CONTCAR.xyz')
  def server_static(folder):
     return b.static_file('CONTCAR.xyz', root='./database/{}'.format(folder))

對於兩個級別的文件夾,您將執行以下操作:

@b.route('/database/<folder1>/<folder2>/CONTCAR.xyz')
  def server_static(folder1, folder2):
     return b.static_file('CONTCAR.xyz', root='./database/{}/{}'.format(folder1, folder2))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM