初始化接口:init

函数原型

init(args: Optional[EntryArgs | dict | str]] = None)

初始化ngx。通常,NGINEX会自动为应用初始化,则无需调用此函数。如果正在手动调试中,必须手动调用此函数。

参数

  • args (Optional[EntryArgs | dict | str]) - 入口参数,即EntryArgs(entry arguments)。

    • 可以直接提供一个EntryArgs对象。通常由NGINEX自动生成,并传给ngx_entry接口,你只需要将其原封不动传给init函数即可。

    • 若提供了Ellipsis(省略号,python中的…),则会报错(详见错误)。此功能主要用于标记有ngx_entry入口的python文件将不再能通过普通python解释器运行,而必须通过ngx.control.run_app接口来运行。具体用法详见本章使用案例。

    • 如果你是高级开发人员,请知晓以下规则:

      • 若提供字典,则系统会做如下操作:

      args = EntryArgs(**args)
      
      • 若提供字符串,则系统会做如下操作:

      args = EntryArgs(env=VersionInfo(args))
      
      • 若不填,则系统会做如下操作:

      args = EntryArgs()
      
      • 在随后用到EntryArgs时,系统则会自动检测环境:

      args.env = detect_env()
      

      这些操作都会帮助你更加方便地手动初始化。

返回值

  • version_info (VersionInfo) - 版本信息

错误

  • args参数是Ellipsis(省略号,python中的…):

    NgxError("The program is supposed to run in an NGINEX env.")
    

使用案例

如果您只是想初步了解何时使用ngx.init接口,可以看这里

如果您是高级开发人员,并想了解如何手动初始化ngx这里pack.py中用到了手动初始化。