Как сделать config в python
Перейти к содержимому

Как сделать config в python

Класс Config() модуля flask в Python.

Объект Config работает точно так же, как словарь dict , но дает возможность заполнять его из файлов или специальных словарей. Есть два общих шаблона для заполнения конфигурации.

Либо можно залить конфиг из конфигурационного Python файла:

Или, в качестве альтернативы, можно определить параметры конфигурации в модуле, который вызывает app.config.from_object() , или указать путь импорта к модулю, который должен быть загружен. Также можно указать ему использовать тот же модуль и с его помощью указать значения конфигурации непосредственно перед вызовом:

В обоих случаях (загрузка из любого файла Python или загрузка из модулей) в конфигурацию добавляются только ключи записанные в верхнем регистре. Это позволяет использовать строчные значения в файле конфигурации для временных значений, которые не добавляются в конфигурацию, или определять ключи конфигурации в том же файле, который реализует веб-приложение.

Наиболее интересный способ загрузки конфигураций — это использование переменной окружения, указывающей на файл:

В этом случае перед запуском приложения необходимо установить эту переменную среды окружения в файл, который нужно использовать. В Linux и OS X используйте оператор export :

В Windows используйте оператор set .

Методы объекта Config .

  • Config.from_envvar() загружает конфигурацию из переменной среды,
  • Config.from_file() обновляет конфигурацию из файла,
  • Config.from_json() обновляет конфигурацию из файла JSON,
  • Config.from_mapping() обновляет конфигурацию из словаря,
  • Config.from_object() обновляет конфигурацию из объекта,
  • Config.from_pyfile() обновляет конфигурацию из файла Python,
  • Config.get_namespace() обновляет конфигурацию из окружения.
Config.from_envvar(variable_name, silent=False) :

Метод Config.from_envvar() загружает конфигурацию из переменной среды, указывающей на файл конфигурации. Это просто ссылка с более приятными сообщениями об ошибках для этой строки кода.

  • variable_name : имя переменной окружения;
  • silent : если не нужны сообщения об ошибках для отсутствующих файлов, установите значение True .

Возвращает True , если можно загрузить конфигурацию, в противном случае False .

Config.from_file(filename, load, silent=False) :

Метод Config.from_file() обновляет значения в конфигурации из файла, который загружается с помощью параметра load. Загруженные данные передаются методу Config.from_mapping() .

  • filename : путь к файлу с данными. Это может быть абсолютный путь или относительно корневого пути конфигурации.
  • load : вызываемый объект, который принимает дескриптор файла и возвращает словарный объект с загруженными данными из файла.
  • silent : если True , то будет игнорировать файл, если он не существует.

Возвращает True , если можно загрузить конфигурацию, в противном случае False .

Новое в версии 2.0.

Config.from_json(filename, silent=False) :

Метод Config.from_json() обновляет значения в конфигурации из файла JSON. Загруженные данные передаются методу Config.from_mapping() .

  • filename : путь к файлу JSON. Это может быть абсолютный путь или относительно корневого пути конфигурации.
  • silent : если True , то будет игнорировать файл, если он не существует.

Не рекомендуется использовать этот метод, начиная с версии 2.0.0, будет удалено в Flask 2.1. Вместо него используйте Config.from_file() .

Config.from_mapping(mapping=None, **kwargs) :

Метод Config.from_mapping() обновляет конфигурацию из словаря, например update() , игнорируя элементы с именами в нижнем регистре.

Config.from_object(obj) :

Метод Config.from_object() обновляет значения конфигурации из данного объекта obj . Объект obj может быть одного из следующих двух типов:

    : в этом случае будет импортирован объект с таким именем.
  • Фактическая ссылка на объект: этот объект используется напрямую

Объекты обычно представляют собой модули или классы. Метод Config.from_object() загружает только атрибуты модуля/класса, имена которых записаны в верхнем регистре. Объект dict не будет работать с этим методом, потому что ключи словаря не являются атрибутами класса dict .

Пример модульной конфигурации:

Перед загрузкой, с объектом ничего не происходит. Если объект является классом и имеет атрибуты @property , то его необходимо создать перед передачей в этот метод.

Эту функцию следует использовать не для загрузки фактической конфигурации, а для загрузки значений конфигурации по умолчанию. Фактическая конфигурация должна быть загружена с помощью Config.from_pyfile() и в идеале из места, не входящего в пакет, поскольку пакет может быть установлен в масштабе всей системы.

Пример конфигурации на основе классов с использованием Config.from_object() смотрите в разделе "Хранение и загрузка конфигураций Flask".

Config.from_pyfile(filename, silent=False) :

Метод Config.from_pyfile() обновляет значения в конфигурации из файла Python. Эта функция ведет себя так, как если бы файл был импортирован как модуль с помощью функции Config.from_object() .

  • filename : имя файла конфигурации. Это может быть либо абсолютное имя файла, либо имя файла относительно корневого пути.
  • silent : если True , то будет игнорировать файл, если он не существует.

Возвращает True , если можно загрузить конфигурацию, в противном случае False .

Config.get_namespace(namespace, lowercase=True, trim_namespace=True) :

Метод Config.get_namespace() возвращает словарь, содержащий подмножество параметров конфигурации, соответствующих указанному пространству имен/префиксу. Пример использования:

Parameters- namespace : пространство имен конфигурации.- lowercase : флаг ( bool ), указывающий, должны ли ключи результирующего словаря быть строчными.- trim_namespace : флаг ( bool ), указывающий, не должны ли ключи результирующего словаря включать пространство имен.

Метод полезен, когда параметры конфигурации отображаются непосредственно на ключевые аргументы в функциях или конструкторах классов.

Как сделать config в python

In this tutorial, we will look into what config files are, and with the help of the ConfigParser module, we will create a configuration file, modify the data in the configuration file, add new data to it and delete existing data from the config file. So without any further delay, let’s get started.

What are configuration files in Python?

Configuration files popularly called config files are special files that store some specific data and settings for computer programs. Most computer programs read their configuration files at startup and periodically check for changes in these configuration files.

The files can be used by the user to change the settings of the application without the need to recompile the programs. Generally each configuration file consists of different sections. Each section contains key and value pairs like a Python dictionary.

Given below is a sample configuration file which consists of three sections namely Address, Education, and the Hobbies of a person.

Now we will create the above configuration file using the ConfigParser module in python.

How to create a configuration file using the Python ConfigParser module?

To create a configuration file in python, we will use the configparser module. In the following implementation, we create a ConfigParser object and add sections to it which are basically dictionaries containing key-value pairs. Then we save the configuration file with the .ini extension.

Output for above code snippet is:

How to add a new section in config files created with ConfigParser?

To add new section in a config file, we can just read a config file in config object, add the new section by defining the section in dictionary format and then we can save the config object into the same file.

Here in the example below, we will add a new section “Physique” in the person.ini file which already contains the Address, Education and Favorites sections.

Output for above code snippet is:

We can also use add_section() method to add a new section and then use set() method to add new fields in the section.

In the above example, we can see that add_section() method takes section name as it’s argument while set() method takes section name as it’s first argument,field name as it’s second argument and value for field as it’s third argument.

These two methods can also be used while making a new config file to add sections and fields to the file instead of using dictionaries as we have done in this example.

How to update data in configuration files?

As we have defined sections of the config files as dictionaries, the operations applicable on dictionaries are also applicable on sections of config files. We can add fields in any section of config file or modify the value of the field in a similar manner as we do with dictionary items.

In the following code we have added a new field “Year” in “Education” section of person.ini config file and modified the value of “Branch” field in the file.

In the above example, we can use update() method to add new fields as well as modify existing fields. If the field given as argument exists in the file, it updates the field otherwise a new field is created.

How to delete data from config file?

We can delete data from config files using remove_option() and remove_section() module in configparser module. remove_option() is used to delete a field from any section and remove_section() is used to delete a complete section of the config file.

In the above example, we can see that remove_option() method takes section name as it’s first argument and field name as it’s the second argument whereas remove_section() method takes the name of the section to be deleted as its argument.

Conclusion

In this tutorial, we have seen what config files are and we have also seen how to create and manipulate config files with the help of the Python configparser module. Happy Learning! ��

Модуль ConfigParser – Создание конфигурационных файлов на Python

В этом уроке мы рассмотрим, что такое файлы конфигурации, и с помощью модуля ConfigParser мы создадим файл конфигурации , изменим данные в файле конфигурации, добавим в него новые данные и удалим существующие данные из файла конфигурации. Так что без дальнейших проволочек давайте начнем.

Что такое файлы конфигурации в Python?

Конфигурационные файлы, обычно называемые конфигурационными файлами, – это специальные файлы, в которых хранятся определенные данные и настройки для компьютерных программ. Большинство компьютерных программ читают свои файлы конфигурации при запуске и периодически проверяют наличие изменений в этих файлах конфигурации.

Файлы могут быть использованы пользователем для изменения настроек приложения без необходимости перекомпиляции программ. Как правило, каждый файл конфигурации состоит из различных разделов. Каждый раздел содержит пары ключей и значений, как словарь Python .

Ниже приведен пример конфигурационного файла, который состоит из трех разделов, а именно: Адрес, Образование и Хобби человека.

Теперь мы создадим вышеуказанный файл конфигурации с помощью модуля ConfigParser в python.

Как создать файл конфигурации с помощью модуля Python ConfigParser?

Для создания файла конфигурации на python мы будем использовать модуль configparser. В следующей реализации мы создаем объект ConfigParser и добавляем в него разделы, которые в основном являются словарями, содержащими пары ключ-значение. Затем мы сохраняем файл конфигурации с расширением .ini.

Вывод для приведенного выше фрагмента кода:

Как добавить новый раздел в конфигурационные файлы, созданные с помощью ConfigParser?

Чтобы добавить новый раздел в файл конфигурации, мы можем просто прочитать файл конфигурации в объекте конфигурации, добавить новый раздел, определив раздел в формате словаря, а затем мы можем сохранить объект конфигурации в том же файле.

Здесь, в приведенном ниже примере, мы добавим новый раздел “Телосложение” в файл person.ini, который уже содержит разделы “Адрес”, “Образование” и “Избранное”.

Вывод для приведенного выше фрагмента кода:

Мы также можем использовать метод add_section() для добавления нового раздела, а затем использовать метод set() для добавления новых полей в раздел.

В приведенном выше примере мы видим, что add_section() метод принимает имя раздела в качестве аргумента,в то время как set() метод принимает имя раздела в качестве первого аргумента, имя поля в качестве второго аргумента и значение поля в качестве третьего аргумента.

Эти два метода также можно использовать при создании нового конфигурационного файла для добавления разделов и полей в файл вместо использования словарей, как мы сделали в этом примере.

Как обновить данные в файлах конфигурации?

Поскольку мы определили разделы конфигурационных файлов как словари, операции, применимые к словарям, также применимы к разделам конфигурационных файлов. Мы можем добавлять поля в любой раздел конфигурационного файла или изменять значение поля аналогично тому, как мы делаем это с элементами словаря.

В следующем коде мы добавили новое поле “Год” в раздел “Образование” конфигурационного файла person.ini и изменили значение поля “Филиал” в файле.

В приведенном выше примере мы можем использовать метод update() для добавления новых полей, а также для изменения существующих полей. Если поле, заданное в качестве аргумента, существует в файле, оно обновляет поле, в противном случае создается новое поле.

Как удалить данные из файла конфигурации?

Мы можем удалить данные из конфигурационных файлов с помощью remove_option() и remove_section() модуля в модуле configparser. remove_option() используется для удаления поля из любого раздела, а remove_section() используется для удаления полного раздела файла конфигурации.

В приведенном выше примере мы видим, что метод remove_option() принимает имя раздела в качестве первого аргумента и имя поля в качестве второго аргумента, тогда как метод remove_section() принимает имя раздела, подлежащего удалению, в качестве аргумента.

Вывод

В этом уроке мы рассмотрели, что такое файлы конфигурации, а также узнали, как создавать файлы конфигурации и управлять ими с помощью модуля Python configparser. Счастливого Обучения! ��

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *