Movatterモバイル変換


[0]ホーム

URL:


Saltar a contenido
Join theFastAPI Cloud waiting list 🚀
Follow@fastapi onX (Twitter) to stay updated
FollowFastAPI onLinkedIn to stay updated
Subscribe to theFastAPI and friends newsletter 🎉
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor

Templating -Jinja2Templates

You can use theJinja2Templates class to render Jinja templates.

Read more about it in theFastAPI docs for Templates.

You can import it directly fromfastapi.templating:

fromfastapi.templatingimportJinja2Templates

fastapi.templating.Jinja2Templates

Jinja2Templates(directory:(str|PathLike[str]|Sequence[str|PathLike[str]]),*,context_processors:(list[Callable[[Request],dict[str,Any]]]|None)=None,**env_options:Any)
Jinja2Templates(*,env:Environment,context_processors:(list[Callable[[Request],dict[str,Any]]]|None)=None)
Jinja2Templates(directory=None,*,context_processors=None,env=None,**env_options)

templates = Jinja2Templates("templates")

return templates.TemplateResponse("index.html", {"request": request})

Source code instarlette/templating.py
 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99100101102103104105
def__init__(self,directory:str|PathLike[str]|Sequence[str|PathLike[str]]|None=None,*,context_processors:list[Callable[[Request],dict[str,Any]]]|None=None,env:jinja2.Environment|None=None,**env_options:Any,)->None:ifenv_options:warnings.warn("Extra environment options are deprecated. Use a preconfigured jinja2.Environment instead.",DeprecationWarning,)assertjinja2isnotNone,"jinja2 must be installed to use Jinja2Templates"assertbool(directory)^bool(env),"either 'directory' or 'env' arguments must be passed"self.context_processors=context_processorsor[]ifdirectoryisnotNone:self.env=self._create_env(directory,**env_options)elifenvisnotNone:# pragma: no branchself.env=envself._setup_env_defaults(self.env)

context_processorsinstance-attribute

context_processors=context_processorsor[]

envinstance-attribute

env=_create_env(directory,**env_options)

get_template

get_template(name)
Source code instarlette/templating.py
131132
defget_template(self,name:str)->jinja2.Template:returnself.env.get_template(name)

TemplateResponse

TemplateResponse(request:Request,name:str,context:dict[str,Any]|None=None,status_code:int=200,headers:Mapping[str,str]|None=None,media_type:str|None=None,background:BackgroundTask|None=None,)->_TemplateResponse
TemplateResponse(name:str,context:dict[str,Any]|None=None,status_code:int=200,headers:Mapping[str,str]|None=None,media_type:str|None=None,background:BackgroundTask|None=None,)->_TemplateResponse
TemplateResponse(*args,**kwargs)
Source code instarlette/templating.py
159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
defTemplateResponse(self,*args:Any,**kwargs:Any)->_TemplateResponse:ifargs:ifisinstance(args[0],str):# the first argument is template name (old style)warnings.warn("The `name` is not the first parameter anymore. ""The first parameter should be the `Request` instance.\n"'Replace `TemplateResponse(name, {"request": request})` by `TemplateResponse(request, name)`.',DeprecationWarning,)name=args[0]context=args[1]iflen(args)>1elsekwargs.get("context",{})status_code=args[2]iflen(args)>2elsekwargs.get("status_code",200)headers=args[3]iflen(args)>3elsekwargs.get("headers")media_type=args[4]iflen(args)>4elsekwargs.get("media_type")background=args[5]iflen(args)>5elsekwargs.get("background")if"request"notincontext:raiseValueError('context must include a "request" key')request=context["request"]else:# the first argument is a request instance (new style)request=args[0]name=args[1]iflen(args)>1elsekwargs["name"]context=args[2]iflen(args)>2elsekwargs.get("context",{})status_code=args[3]iflen(args)>3elsekwargs.get("status_code",200)headers=args[4]iflen(args)>4elsekwargs.get("headers")media_type=args[5]iflen(args)>5elsekwargs.get("media_type")background=args[6]iflen(args)>6elsekwargs.get("background")else:# all arguments are kwargsif"request"notinkwargs:warnings.warn("The `TemplateResponse` now requires the `request` argument.\n"'Replace `TemplateResponse(name, {"context": context})` by `TemplateResponse(request, name)`.',DeprecationWarning,)if"request"notinkwargs.get("context",{}):raiseValueError('context must include a "request" key')context=kwargs.get("context",{})request=kwargs.get("request",context.get("request"))name=cast(str,kwargs["name"])status_code=kwargs.get("status_code",200)headers=kwargs.get("headers")media_type=kwargs.get("media_type")background=kwargs.get("background")context.setdefault("request",request)forcontext_processorinself.context_processors:context.update(context_processor(request))template=self.get_template(name)return_TemplateResponse(template,context,status_code=status_code,headers=headers,media_type=media_type,background=background,)

[8]ページ先頭

©2009-2026 Movatter.jp