中間件¶
Starlette 直接提供了幾個可用的中間件。
在FastAPI 中間件文件中了解更多資訊。
fastapi.middleware.cors.CORSMiddleware ¶
CORSMiddleware(
app,
allow_origins=(),
allow_methods=("GET"),
allow_headers=(),
allow_credentials=False,
allow_origin_regex=None,
expose_headers=(),
max_age=600,
)
參數 | 說明 |
---|---|
app(應用程式)
|
類型: |
allow_origins(允許的來源)
|
類型: |
allow_methods(允許的方法)
|
類型: |
allow_headers(允許的標頭)
|
類型: |
allow_credentials(允許憑證)
|
類型: |
allow_origin_regex(允許的來源正規表達式)
|
類型: |
expose_headers(公開的標頭)
|
類型: |
max_age(最大存活時間)
|
類型: |
原始碼位於 starlette/middleware/cors.py
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
|
preflight_explicit_allow_origin 實例屬性
¶
preflight_explicit_allow_origin = (
preflight_explicit_allow_origin
)
is_allowed_origin ¶
is_allowed_origin(origin)
參數 | 說明 |
---|---|
origin(來源)
|
類型: |
原始碼位於 starlette/middleware/cors.py
95 96 97 98 99 100 101 102 |
|
preflight_response ¶
preflight_response(request_headers)
參數 | 說明 |
---|---|
request_headers(請求標頭)
|
類型: |
原始碼位於 starlette/middleware/cors.py
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 |
|
simple_response 非同步
¶
simple_response(scope, receive, send, request_headers)
參數 | 說明 |
---|---|
scope(範圍)
|
類型: |
receive(接收)
|
類型: |
send(發送)
|
類型: |
request_headers(請求標頭)
|
類型: |
原始碼位於 starlette/middleware/cors.py
142 143 144 |
|
send 非同步
¶
send(message, send, request_headers)
參數 | 說明 |
---|---|
message(訊息)
|
類型: |
send(發送)
|
類型: |
request_headers(請求標頭)
|
類型: |
原始碼位於 starlette/middleware/cors.py
146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 |
|
allow_explicit_origin 靜態方法
¶
allow_explicit_origin(headers, origin)
參數 | 說明 |
---|---|
headers(標頭)
|
類型: |
origin(來源)
|
類型: |
原始碼位於 starlette/middleware/cors.py
169 170 171 172 |
|
可以從 fastapi
導入
from fastapi.middleware.cors import CORSMiddleware
fastapi.middleware.gzip.GZipMiddleware ¶
GZipMiddleware(app, minimum_size=500, compresslevel=9)
參數 | 說明 |
---|---|
app(應用程式)
|
類型: |
minimum_size(最小大小)
|
類型: |
compresslevel(壓縮級別)
|
類型: |
原始程式碼位於 starlette/middleware/gzip.py
10 11 12 13 |
|
可以從 fastapi
導入
from fastapi.middleware.gzip import GZipMiddleware
fastapi.middleware.httpsredirect.HTTPSRedirectMiddleware ¶
HTTPSRedirectMiddleware(app)
可以從 fastapi
導入
from fastapi.middleware.httpsredirect import HTTPSRedirectMiddleware
fastapi.middleware.trustedhost.TrustedHostMiddleware ¶
TrustedHostMiddleware(
app, allowed_hosts=None, www_redirect=True
)
參數 | 說明 |
---|---|
app(應用程式)
|
類型: |
allowed_hosts
|
類型: |
www_redirect
|
類型: |
原始碼位於 starlette/middleware/trustedhost.py
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
可以從 fastapi
導入
from fastapi.middleware.trustedhost import TrustedHostMiddleware
fastapi.middleware.wsgi.WSGIMiddleware ¶
WSGIMiddleware(app)
可以從 fastapi
導入
from fastapi.middleware.wsgi import WSGIMiddleware