TemplateConfig¶
TemplateConfig β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎΠΉ Π½Π°Π±ΠΎΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅Ρ Π΄Π²ΠΈΠΆΠΎΠΊ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ².
Info
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Ravyn ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Jinja2.
ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ Π²Π°ΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ Ravyn JinjaTemplateEngine
Π² ΡΠ°ΠΌΠΊΠ°Ρ
TemplateConfig.
ΠΡ Π²ΠΎΠ»ΡΠ½Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΅Π³ΠΎ Π² TemplateConfig.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΌΡ ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ.
Tip
Ravyn, ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Lilya ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ JinjaTemplateEngine ΠΈΠ· Lilya.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ Jinja2Template
Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Lilya, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈ ΠΈΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅.
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ jinja2 ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΅Π³ΠΎ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ engine ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ
TemplateConfig.
ΠΡ Π·Π°ΠΌΠ΅ΡΠΈΡΠ΅, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² TemplateConfig ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ jinja2.
TemplateConfig ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅¶
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ TemplateConfig Π² ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
from pathlib import Path
from ravyn import Ravyn
from ravyn.core.config.template import TemplateConfig
from ravyn.template.jinja import JinjaTemplateEngine
template_config = TemplateConfig(
directory=Path("templates"),
engine=JinjaTemplateEngine,
)
app = Ravyn(template_config=template_config)
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ¶
ΠΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ΅ TemplateConfig.
TemplateConfig ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ¶
TemplateConfig ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ Π½Π°ΠΏΡΡΠΌΡΡ ΡΠ΅ΡΠ΅Π· ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΡΠ΅Π· Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ.
from pathlib import Path
from ravyn import RavynSettings
from ravyn.core.config.template import TemplateConfig
from ravyn.template.jinja import JinjaTemplateEngine
class CustomSettings(RavynSettings):
@property
def template_config(self) -> TemplateConfig:
"""
Initial Default configuration for the StaticFilesConfig.
This can be overwritten in another setting or simply override
`template_config` or then override the `def template_config()`
property to change the behavior of the whole template_config.
Ravyn can also support other engines like mako, Diazo,
Cheetah. Currently natively only supports jinja2 as its
a standards in the market.
"""
return TemplateConfig(
directory=Path("templates"),
engine=JinjaTemplateEngine,
)
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΈΡΡΠΎΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΈ ΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅. Π’Π°ΠΊ ΠΆΠ΅ ΠΈΠ·Π±Π΅Π³Π°ΡΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Ravyn.
url_for¶
Ravyn Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ url_for ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² jinja,
ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ ΡΡΠΎΠ³ΠΎ:
<link href="{{ url_for('static', path='/css/app.min.css') }}" rel="stylesheet" />
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ¶
ΠΡΠΎΡΡΠΎ Π²Π΅ΡΠ½ΠΈΡΠ΅ Template (ΠΈΠ· ravyn), Π° Π½Π΅ TemplateResponse, Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ name,
ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΌ Π½Π° ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΡΡ ΠΊ ΡΠ°Π±Π»ΠΎΠ½Ρ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΏΠ΅ΡΠ΅Π΄Π°Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ context Π² ΡΠ»ΠΎΠ²Π°ΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
Π§ΡΠΎΠ±Ρ Π²ΡΠ±ΡΠ°ΡΡ ΡΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (txt, html), Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ ΡΠ°ΠΊ: foo.html.jinja.