Колба. Должно ли имя функции соответствовать пути app.route? [Дубликат]

Если ошибка указана в PHP-коде, вы можете использовать функцию error_reporting () в вашем коде, чтобы установить для всего отчета.

Однако это не справляется с ситуацией, когда сбой PHP. Информация об этом доступна только в журналах сервера. Возможно, у вас нет доступа к ним, но многие хостинг-провайдеры, с которыми я работал, могут каким-то образом позволить вам получить к нему доступ. Например, подход, который мне больше всего нравится, заключается в том, что он создает файл error_log в текущем каталоге, где находится .php. Попробуйте найти там или обратитесь к вашему провайдеру хостинга.

0
задан JackOfAll 11 March 2019 в 13:36
поделиться

2 ответа

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

AssertionError: View function mapping is overwriting an existing endpoint function

, но что именно выполняет функция

Это немного сложнее, чем, но в конце дня фляга держит словарь как отображение между «конечной точкой» (именем функции) и объектом функции (именно поэтому имена функций должны быть уникальными):

self.view_functions[endpoint] = view_func

Он также сохраняет url_map для сопоставления маршруты к функциям:

Map([<Rule '/route_a' (OPTIONS, GET, HEAD) -> func_a>,
     <Rule '/route_b' (OPTIONS, GET, HEAD) -> func_b>,
     <Rule '/static/<filename>' (OPTIONS, GET, HEAD) -> static>])
{}
0
ответ дан DeepSpace 11 March 2019 в 13:36
поделиться

Нет, вы можете назвать функцию по своему усмотрению.

Очевидно, что также важно правильно называть вашу функцию, и это одна из основных причин:

Функция получает имя, которое также используется для генерации URL для этой конкретной функции, и возвращает сообщение, которое мы хотим отобразить в браузере пользователя.

Вот пример того, почему использование соответствующего имени функции очень удобно (пример использования url_for):

from flask import Flask, url_for

app = Flask(__name__)

@app.route('/')
def index():
    return 'index'

@app.route('/login')
def login():
    return 'login'

@app.route('/user/<username>')
def profile(username):
    return '{}\'s profile'.format(username)

with app.test_request_context():
    print(url_for('index'))
    print(url_for('login'))
    print(url_for('login', next='/'))
    print(url_for('profile', username='John Doe'))

Вы можете прочитать эту информацию, другие подробности в Документация Flask [111 ].

0
ответ дан Pitto 11 March 2019 в 13:36
поделиться
Другие вопросы по тегам:

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