Документация Flask для @ app.route ('/ upload / <filename>') - PullRequest
0 голосов
/ 14 мая 2018

Есть ли где-нибудь в документации Flask 1.0, 0.12.x или более ранней документации, которая фактически объясняет, как правильно выполнять загрузку с фляги. Я пишу код уже 30 лет и не могу разобраться с документацией по фляге. И я имею в виду что-либо из этого, кроме примера "Привет, мир" Каждый пример содержит информацию типа «и еще одна вещь, которая вам понадобится». Это означает, что документация / код не завершен. Это в лучшем случае немного.

В частности, нет четкого объяснения:

@app.route('/upload/<filename>') 

Что такое имя файла? это переменная? это заполнитель? это то, что присваивает возвращаемая переменная? какова функция знаков <>? Как сохранить глобальное представление о 10-20 переменных, кроме использования JSON? Ничего из этого не ясно и все же является фундаментальным для создания любого нетривиального веб-сайта.

При создании примера веб-сайтов на основе колб / HTML я не могу найти код для:

  1. загрузить файл и переслать имя файла в другой шаблон из начального шаблона.
  2. показывает полный набор рабочего кода и структуру кода.

Некоторые функции upload_file () (документация о флягах) показывают отображаемые страницы, тогда как другие (веб-сайты пользователей / переполнение стека) возвращают адрес файла. Мне удалось отобразить страницу без возврата имени файла, поэтому я понятия не имею, почему люди пишут / загружают в дополнение к upload_file.

В нескольких примерах stackoverflow показаны две функции, которые обе называются upload_file (), одна из которых отправляет сообщения, а другая - для отображения изображения. Это приводит к ошибке в колбе 0.12.4 (в Debian Stretch).

Полагаю, у кого-то есть документация о том, как создать веб-сайт с настройкой типа «Шаг 1, шаг 2, шаг 3, финал», где каждая страница отображается с помощью фляги. В настоящее время я не могу найти ничего подобного.

Я единственный, кто в растерянности? Я вижу, что если вы разбираетесь в этом, то вы можете писать HTML / Python Interactive сайты без какого-либо PhP, что мне очень нравится, так как я уже разбираюсь в Python.

SUB_FOLDER = 'tables/uploads'
UPLOAD_FOLDER = '/var/www/html/{}'.format(SUB_FOLDER)
ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'png',
                          'jpg', 'jpeg', 'gif'])


@app.route('/runtable', methods=['GET', 'POST'])
def first_table():
    if request.method != 'POST':
        my_table = [{"text": "line one", "code": 0},
                    {"text": "line two", "code": 1}]
        return render_template('step1.html',
                               my_table=my_table)


@app.route('/uploader', methods=['GET', 'POST'])
def upload_file():
    if request.method == "POST":
        f = request.files['file']
        filename = os.path.join(app.config['UPLOAD_FOLDER'],
                                secure_filename(f.filename))
        f.save(filename)
        fullFileName = os.path.join('http://localhost/',
                                    SUB_FOLDER,
                                    secure_filename(f.filename))
        jsonItem = [{"text": "Sample table header", "code": 0},
                    {"text": "second line of text", "code": 2}]
        return render_template('step2.html',
                               my_table=jsonItem,
                               filename=fullFileName)
    pass
...