Managing Config
The Nexios framework provides a flexible and dynamic configuration system through its MakeConfig
class. This system allows for structured configuration management with support for nested attributes, validation, and immutability.
🧢 Basic Usage
python
from nexios import NexiosApp
from nexios.config import MakeConfig
config = MakeConfig({
"port": 8000,
"debug": True
})
app = NexiosApp(config = config)
You can access the configuration using the config
attribute of the NexiosApp
instance:
python
from nexios import NexiosApp
from nexios.config import MakeConfig
config = MakeConfig({
"port": 8000,
"debug": True
})
app = NexiosApp(config = config)
print(app.config.port) # Output: 8000
print(app.config.debug) # Output: True
⚙️ Accessing Configuration Globally
The framework provides global configuration management through:
python
from nexios.config import get_config
from nexios import NexiosApp
app = NexiosApp()
# Access global configuration from startup handler
@app.on_startup
async def startup_handler():
config = get_config()
print(config.port) # Output: 8000
# Get global configuration from handler
@app.get("/config")
async def get_config_handler(req, res):
config = get_config()
print(config.port) # Output: 8000
print(config.debug) # Output: True
...
💡Tip
You get access to the global configuration through the get_config
function from any module in your application.
⚠️ Warning
If you try get_config
before it has been set, it will raise an exception.
💻 Set Config Dynamically
python
from nexios import NexiosApp
from nexios.config import set_config
config = MakeConfig({
"port": 8000,
"debug": True
})
app = NexiosApp()
set_config(config)