Sanic static() 方法/函式

veelion發表於2019-06-04

Sanic 類的static()方法的API介面。

Sanic static() 方法函式

static() 方法/函式

定義

static(uri, file_or_directory, pattern='/?.+', use_modified_since=True, use_content_range=False, stream_large_files=False, name='static', host=None, strict_slashes=None, content_type=None)

註冊提供檔案的跟目錄。輸入可以是檔案或目錄。 此方法將使用簡單方便的方法來設定提供靜態檔案所需的路由。

引數

  • uri : 用來提供靜態內容的URL路徑
  • file_or_directory: 靜態檔案的路徑,或含有靜態檔案的目錄的路徑。
  • pattern:識別有效靜態檔案的正規表示式。
  • use_modified_since:如果為true,則傳送檔案修改時間,如果瀏覽器與伺服器匹配,則返回未修改。
  • use_content_range: 如果為true,為範圍請求處理請求頭,並返回請求的檔案片段。
  • stream_large_file:如果為true,使用StreamingHTTPResponse.file_stream() 替代 HTTPResponse.file()。如果這是一個整數,則表示切換到StreamingHTTPResponse.file_stream()的閾值大小。
  • name:使用者為url_for() 定義的名字。
  • host : 服務執行的HOST IP 地址或FQDN。
  • strict_slashes:是否檢查請求URL結尾的斜槓/。
  • content_type:使用者為請求頭定義的內容型別。

返回值
無。

例子

from sanic import Sanic
from sanic.blueprints import Blueprint

app = Sanic(__name__)

# Serves files from the static folder to the URL /static
app.static('/static', './static')
# use url_for to build the url, name defaults to 'static' and can be ignored
app.url_for('static', filename='file.txt') == '/static/file.txt'
app.url_for('static', name='static', filename='file.txt') == '/static/file.txt'

# Serves the file /home/ubuntu/test.png when the URL /the_best.png
# is requested
app.static('/the_best.png', '/home/ubuntu/test.png', name='best_png')

# you can use url_for to build the static file url
# you can ignore name and filename parameters if you don't define it
app.url_for('static', name='best_png') == '/the_best.png'
app.url_for('static', name='best_png', filename='any') == '/the_best.png'

# you need define the name for other static files
app.static('/another.png', '/home/ubuntu/another.png', name='another')
app.url_for('static', name='another') == '/another.png'
app.url_for('static', name='another', filename='any') == '/another.png'

# also, you can use static for blueprint
bp = Blueprint('bp', url_prefix='/bp')
bp.static('/static', './static')

# servers the file directly
bp.static('/the_best.png', '/home/ubuntu/test.png', name='best_png')
app.blueprint(bp)

app.url_for('static', name='bp.static', filename='file.txt') == '/bp/static/file.txt'
app.url_for('static', name='bp.best_png') == '/bp/test_best.png'

app.run(host="0.0.0.0", port=8000)

猿人學banner宣傳圖

我的公眾號:猿人學 Python 上會分享更多心得體會,敬請關注。

***版權申明:若沒有特殊說明,文章皆是猿人學 yuanrenxue.com 原創,沒有猿人學授權,請勿以任何形式轉載。***

相關文章