Comments (4)
Achei interessante. Porém não estou gostando do seguindo fato:
Esse dynaconf não utiliza varíavel de ambiente para realizar a configuração, ele utiliza o arquivo de configuração apenas.
Ou seja, se for mudar alguma configuração precisa alterar no arquivo. Logo se cada desenvolvedor configurar de uma maneira o seu banco de dados cada um vai precisar do seu próprio arquivo de configuração.
Talvez seja possível configurar um arquivo de configuração adicional que seja apenas local e que não vá para o repositório (pelo que li por cima da lib).
Mas vai continuar precisando criar esse arquivo local e alterando ele se for preciso. E no ambiente de produção no servidor? Qualquer PaaS ou IaaS fornece configuração de varíavel de ambiente e é mt mais simples de utilizar/configurar.
Utilizando o Dynaconf a gente vai continuar configurando o projeto pelo Python, ao invés de utilizar variáveis de ambiente.
Para demostrar o que estou querendo dizer estou mandando umas imagens aqui.
Configuração do app flask e print de varíaveis de ambiente da execução
Saída do flask run
Configuração das varíaveis de ambiente
Arquivo de configuração utilizado no Dynaconf
from transparencia-api.
O dynaconf lê sim os arquivos .env (https://dynaconf.readthedocs.io/en/latest/guides/usage.html#illustrative-example), mas como possui dados sensiveis, coloquei o SQLALCHEMY_DATABASE_URI
em um arquivo chamado .secrets.toml . Não vejo necessidade de quebrar a URI em HOST, PORT, NAME, USER, PASSWORD nas variaveis, se vamos usar elas juntas. Se quiser configurar assim, dê uma olhada no SQLALCHEMY_ENGINE_OPTIONS
from transparencia-api.
Mas teremos sim, dois arquivos que teremos que configurar que são .env
e o .secrets.toml
, mas tambem pode se configurar o arquivo settings.toml
. Mas dessa forma, as configurações ficam na responsabilidade dos configs e não do python.
from transparencia-api.
Alterei as configurações no #18 para utilizar environment variables
Li as seguintes fontes antes de tomar essa decisão:
- https://simpleit.rocks/python/flask/avoid-using-flask-instance-folder-when-deploying-to-heroku/
- https://www.pythonanywhere.com/forums/topic/963/https://medium.com/@aswens0276/refactoring-python-flask-environment-variables-with-environs-module-d0e1850c89eb
- https://flask.palletsprojects.com/en/1.1.x/config/
from transparencia-api.
Related Issues (9)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from transparencia-api.