WSGI em um relance, corrigindo meus Unittests
Hoje em dia, comecei um novo projeto e tentei várias coisas que não conhecia antes, como plim, stylus, coffee e sqlalchemy. Mas o que me prendeu foi que não consigo …
Continuar lendoConteúdo para você se capacitar em programação
Hoje em dia, comecei um novo projeto e tentei várias coisas que não conhecia antes, como plim, stylus, coffee e sqlalchemy. Mas o que me prendeu foi que não consigo …
Continuar lendoFlask mensagens flash como alerta Bootstrap. {% with messages = get_flashed_messages(with_categories=true) %} <!– Categories: success (green), info (blue), warning (yellow), danger (red) –> {% if messages %} {% for category, …
Continuar lendoSe você quiser que o Flask cuspa objetos json quando exceções são levantadas dentro do código do aplicativo, este manipulador de exceções pode ser útil: from flask import jsonifyfrom werkzeug.exceptions …
Continuar lendoJinja2 carece de um urlencodefiltro integrado clássico ( http://jinja.pocoo.org/docs/templates/#builtin-filters ). Aqui está um simples: import urllibfrom markupsafe import Markup@app.template_filter(‘urlencode’)def urlencode_filter(s): if type(s) == ‘Markup’: s = s.unescape() s = s.encode(‘utf8’) …
Continuar lendoPrimeiro crie um arquivo config.cfg. Conteúdo: HELLO=’Hi!’Em seguida, em seu arquivo python principal para flusk (onde você executa tudo): app = Flask(__name__) `app.config.from_pyfile (‘config.cfg’) E use-o assim:app.config[‘HELLO’]
Continuar lendoProcurei por essa maldita coisa em todos os lugares. Não estava interessado em escrever um arquivo temporário! def serve_csv(filename): dataframe = filtered_dataframe(filename) buffer = StringIO() dataframe.to_csv(buffer,encoding=’utf-8′) buffer.seek(0) return send_file(buffer, attachment_filename=”test.csv”, …
Continuar lendoAqui está meu trecho # -*- coding: utf-8 -*-from tornado.wsgi import WSGIContainerfrom tornado.ioloop import IOLoopfrom tornado.web import FallbackHandler, RequestHandler, Applicationfrom app import appclass MainHandler(RequestHandler): def get(self): self.write(“This message comes from …
Continuar lendoUsar o servidor gevent em vez do padrão por flask perderá o recurso de depuração e este trecho habilitará o depurador e recarregará o suporte. from gevent.wsgi import WSGIServerfrom werkzeug.serving …
Continuar lendoExiste um “recurso” complicado no módulo de registro do python. Vamos explorar isso. Considerando o código abaixo import loggingmain_logger = logging.getLogger(“mywebapp”)controllers_logger = logging.getLogger(“mywebapp.controllers”)models_logger = logging.getLogger(“mywebapp.models”) Isso é muito legal para …
Continuar lendoBlueprints no Flask são úteis para dividir aplicativos grandes em componentes menores que também podem ser usados em outros aplicativos, como um painel de administração, por exemplo. Os blueprints implementam …
Continuar lendoEntão eu passei muito tempo demais depuração por que minha sessão foram expirando rapidamente no servidor estágio do Poderoso Primavera que roda em Heroku. Eu finalmente cavei fundo o suficiente …
Continuar lendo@mod.route(“/robots.txt”)def robots_txt(): Disallow = lambda string: ‘Disallow: {0}’.format(string) return Response(“User-agent: *n{0}n”.format(“n”.join([ Disallow(‘/bin/*’), Disallow(‘/thank-you’), ])))
Continuar lendoIntrodução Esta é uma abordagem melhor e mais limpa para usar o SDK Javascript do Facebook: O código Javascript é separado da marcação. O código é reutilizável Como usar Adicionar …
Continuar lendoOs decoradores Python são ótimos, embora nem sempre fáceis de definir. Flask é uma ótima biblioteca Python para construir APIs REST; faz uso intensivo de decoradores para coisas como esta: …
Continuar lendoSe você está tendo problemas com o framework PostgreSql, unicode e Flask e está vendo algo assim: UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xc3 in position 1: ordinal not in …
Continuar lendoComo um desenvolvedor de extensão Flask, você normalmente desejará testar sua extensão em uma lista de versões do Flask. No Travis-CI é muito simples e incrivelmente poderoso. O seguinte arquivo …
Continuar lendo