колба: обработчик ошибок для чертежей

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

import os
import subprocess

# Define a function for running commands and capturing stdout line by line
# (Modified from Vartec's solution because it wasn't printing all lines)
def runProcess(exe):    
    p = subprocess.Popen(exe, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    return iter(p.stdout.readline, b'')

# Get all filenames in working directory
for filename in os.listdir('./'):
    # This command will be run on each file
    cmd = 'nm ' + filename

    # Run the command and capture the output line by line.
    for line in runProcess(cmd.split()):
        # Eliminate leading and trailing whitespace
        line.strip()
        # Split the output 
        output = line.split()

        # Filter the output and print relevant lines
        if len(output) > 2:
            if ((output[2] == 'set_program_name')):
                print filename
                print line

Изменить: просто увидел решение Макса Перссона с предложением Я. Ф. Себастьяна. Пошел вперед и включил это.

22
задан blueblank 7 October 2012 в 12:29
поделиться

1 ответ

errorhandler метод, наследованный от Фляги, не Проекта. При использовании Проекта эквивалент app_errorhandler.

документация предлагает следующий подход:

def app_errorhandler(self, code):
        """Like :meth:`Flask.errorhandler` but for a blueprint.  This
        handler is used for all requests, even if outside of the blueprint.
        """

Поэтому это должно работать:

from flask import Blueprint, render_template

USER = Blueprint('user', __name__)

@USER.app_errorhandler(404)
def page_not_found(e):
    """ Return error 404 """
    return render_template('404.html'), 404

, С другой стороны, в то время как подход ниже не повысил ошибки для меня, это не работало:

from flask import Blueprint, render_template

USER = Blueprint('user', __name__)

@USER.errorhandler(404)
def page_not_found(e):
    """ Return error 404 """
    return render_template('404.html'), 404
4
ответ дан 29 November 2019 в 02:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: