CORSConfig¶
CORS ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Cross-Origin Resource Sharing ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ
middleware Π² Ravyn.
ΠΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ΅ΠΊΡ CORSConfig ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ CORSMiddleware.
Tip
ΠΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ CORS ΡΡΡ.
Check
ΠΡΠ»ΠΈ allowed_hosts ΡΠΊΠ°Π·Π°Π½ ΡΠ΅ΡΠ΅Π· ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ
TrustedHostMiddleware.
CORSConfig ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅¶
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ CORSConfig Π² ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
from ravyn import CORSConfig, Ravyn
cors_config = CORSConfig(
allow_origins=["https://example.com", "https://foobar.org"], allow_methods=["GET", "POST"]
)
app = Ravyn(cors_config=cors_config)
ΠΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ
from ravyn import CORSConfig, Ravyn
cors_config = CORSConfig(
allow_origins=["https://www.example.com", "https://foobar.org"],
allow_methods=["GET", "POST"],
allow_credentials=True,
)
app = Ravyn(cors_config=cors_config)
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ¶
ΠΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ΅ CORSConfig.
CORSConfig ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ¶
CORSConfig ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ Π½Π°ΠΏΡΡΠΌΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΡΠ΅Π· Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ.
from ravyn import CORSConfig, RavynSettings
class CustomSettings(RavynSettings):
@property
def cors_config(self) -> CORSConfig:
"""
Initial Default configuration for the CORS.
This can be overwritten in another setting or simply override
`allow_origins` or then override the `def cors_config()`
property to change the behavior of the whole cors_config.
"""
if not self.allow_origins:
return None
return CORSConfig(allow_origins=self.allow_origins, allow_methods=["*"])
ΠΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π² ΡΠΈΡΡΠΎΡΠ΅, Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Ravyn.