Приложение настроек Джанго?

Кто-нибудь сталкивался с идеей «приложения настроек» для проекта django?

Это набор переменных приложения, установленных администратором (не разработчиком, поэтому settings.py не работает) с помощью панели администратора.

Есть ли готовые к использованию приложения?

изменить Вероятно, я не совсем ясно изложил свой вопрос. Я имею в виду не редактирование таких вещей, как настройки подключения, а такие вещи, как «ограничение размера файла».


person mhaligowski    schedule 12.09.2010    source источник
comment
настройки чего? Настройки проекта или настройки приложения?   -  person Davor Lucic    schedule 13.09.2010


Ответы (3)



Вопрос в том, как бы вы сохранили настройки.

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

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

Итак... на мой взгляд, это можно было бы сделать, но я бы проголосовал против, так как это опасно. Если что-то должно быть настроено из Интернета, реализуйте это в приложении :)

person Wolph    schedule 12.09.2010

Это звучит так, будто вы спрашиваете "как администратор может изменить настройки (например, параметры подключения к базе данных) без изменения settings.py?"

Если ваш администратор недостаточно знаком с Python, чтобы напрямую изменять файл settings.py, вы можете рассмотреть возможность предоставления администратору более простого файла для редактирования, например, файл конфигурации, который вы загрузили из settings.py. Тогда все, что нужно сделать вашему администратору, это отредактировать файл конфигурации и перезапустить сервер.

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

(Другим вариантом было бы получить лучшего администратора...)

person Seth    schedule 12.09.2010
comment
+1: мы справились с этим другим (вероятно, не таким хорошим) способом, как метод файла конфигурации. У нас есть try/except для local_early_settings.py и local_late_settings.py, которые отмечены вверху и внизу основного файла settings.py. Первоначально они предназначались для того, чтобы разрешить разные настройки в отдельных рабочих пространствах разных разработчиков, но это также было полезно, когда один из наших менее осведомленных людей портил один из ранних/поздних файлов. О, и эти два файла также перечислены в файле .hgignore, чтобы они случайно не оказались в рабочей среде. - person Peter Rowell; 13.09.2010
comment
я бы не позволил администратору сайта (я не имею в виду администратора базы данных или системного администратора) изменять настройки подключения к базе данных. - person mhaligowski; 16.09.2010
comment
-1 Иногда у вас есть общесайтовые переменные, которыми вы хотите управлять не технически подкованному человеку. Даже предоставление им более простого файла требует также предоставления им CLI-доступа к серверу, что может привести к проблемам безопасности или техническим проблемам в будущем. Иногда хороший пользовательский интерфейс с парой ключей — это нормально. - person ; 20.02.2014