Browse Source

more about contexts and configs

master
Julio Biason 10 years ago
parent
commit
3bd34b7dad
  1. 89
      flask.html

89
flask.html

@ -210,36 +210,55 @@ app = Flask(__name__)
<section>
<section>
<h2>Configurações</h2>
<h2>Contextos</h2>
</section>
<section>
<p>Configurações podem vir de 3 lugares diferentes:</p>
<p>Essa é a parte chata do Flask.</p>
<ul>
<li>De uma classe.</li>
<li>De um arquivo Python.</li>
<li>De um arquivo apontando por uma variável de ambiente.</li>
</ul>
<p>Existem dois contextos: Contexto de aplicação e Contexto que requisição.</p>
</section>
<p>Todos os três podem ser executados em sequência, o último valor
encontrado é o que vale.</p>
</p>
<section>
<p>Contexto de aplicação só existe quando o app está rodando.</p>
<p>Acessado com <code>current_app</code>.</p>
<p><pre><code data-trim>
from flask import current_app
</code></pre></p>
<p>É a única forma de acessar dados da aplicação enquanto ela
está rodando.</p>
</section>
<section>
<p>Contexto de requisição só existe quando o sistema está
atendendo uma requisção (recebeu uma URL).</p>
<p>Acessado com <code>request</code>.</p>
<p><pre><code data-trim>
class Settings(objects):
FILE_PATH = './here'
ORDER_FIELD = 'name'
from flask import request
</code></pre></p>
<p>Mais sobre <code>request</code> mais adiante.</p>
</section>
</section>
<section>
<p>Para acessar as configurações, usa-se a propriedade <code>config</code>
da aplicação quando esta está rodando.</p>
<p>(Contexto de aplicação, lembra?)</p>
<p><pre><code data-trim>
app = Flask(__name__)
from flask import current_app
from flask import render_template
app.config.from_object(Settings)
app.config.from_pyfile('/etc/meuaplicativo.cfg')
app.config.from.envvar('MEUAPLICATIVO_CFG')
@app.route('/')
def index():
return render_template('template.html',
order=current_app.config.get('ORDER_FIELD'))
</code></pre></p>
</section>
</section>
@ -574,6 +593,42 @@ def not_found():
</section>
</section>
<section>
<section>
<h2>Configurações</h2>
</section>
<section>
<p>Configurações podem vir de 3 lugares diferentes:</p>
<ul>
<li>De uma classe.</li>
<li>De um arquivo Python.</li>
<li>De um arquivo apontando por uma variável de ambiente.</li>
</ul>
<p>Todos os três podem ser executados em sequência, o último valor
encontrado é o que vale.</p>
</p>
</section>
<section>
<p><pre><code data-trim>
class Settings(objects):
FILE_PATH = './here'
ORDER_FIELD = 'name'
</code></pre></p>
<p><pre><code data-trim>
app = Flask(__name__)
app.config.from_object(Settings)
app.config.from_pyfile('/etc/meuaplicativo.cfg')
app.config.from.envvar('MEUAPLICATIVO_CFG')
</code></pre></p>
</section>
</section>
<section>
<section>
<h2>URLs reversas/Endpoints</h2>

Loading…
Cancel
Save