Как открыть созданную локальную страницу в Flask - PullRequest
0 голосов
/ 08 декабря 2018

Я использовал колбу render_template и создал страницу локально (order_html).Однако я не мог понять, как открыть order_html из браузера.Я подозреваю, что это должно быть localhost:5000/html_pages/order_job_id.html, но это не сработало.

Каким должен быть в конечном итоге правильный способ открыть вновь созданную веб-страницу, которая хранится локально?Со временем я опубликую приложение в Интернете, и я смогу открыть эти созданные веб-страницы: www.domain.com/order_job_id.html

from flask import Flask, request, session, g, redirect, url_for, abort, render_template, flash, send_from_directory
import os
import sys
import json
import uuid
import logging

base_dir = sys.path[0]
temp_dir = os.path.join(base_dir, 'pages')
log_main_file = os.path.join(base_dir, 'logs', 'log.log')
main_logger = setup_logger('main_log', log_main_file)
download_path = os.path.join(base_dir,'html_pages')
html_page = os.path.join(base_dir, 'pages')
logo_file = os.path.join(base_dir, 'docs', 'logo.txt')

app = Flask(__name__, template_folder = temp_dir)
app.config.from_object(__name__)
app.config["DEBUG"] = True

@app.route('/parse', methods=['GET', 'POST'])
def sendgrid_parser():
    att_metadata = request.form.get('attachment-info', '')
    job_id = str(uuid.uuid4().hex)
    job_dir = os.path.join(download_path, job_id)
    if len(request.form) > 0 and len(att_metadata) > 0:
        # Set up logger for parsing emails
        os.mkdir(job_dir)
        job_log = os.path.join(download_path, job_id, 'log.log')
        email_logger = setup_logger('email_log', job_log)
        main_logger.info('Job [' + job_id + '] is created.')
        att_info = json.loads(att_metadata)
        att_count = int(request.form.get('attachments')) if request.form.get('attachments') else 0
        # Process attachments if any
        if att_count > 0:            
            for num in range(1, (att_count + 1)):
                request.files['attachment%d' % num].save(os.path.join(job_dir,file_name))
                email_logger.info(prefix + 'File ['+file_name+'] is downloaded.')

            email_logger.info(prefix + 'Email data has been parsed and loaded into the database.')

            rendered = render_template('order.html', img_data=img_data, job_id=job_id)

            order_html = os.path.join(job_dir,'order_' + job_id + '.html')
            if len(rendered) > 0:
                try:
                    output = open(order_html, 'w')
                    output.write(rendered)
                    output.close()
                    email_logger.info(prefix + 'Order page for ' + job_id + ' is generated successfully.')

                    return 'Good'

                except Exception as e:
                    email_logger.error(prefix + 'Saving order html failed! File Path:[' + order_html + '] Error: ' + str(e))
            else:
                order_html = 'Blank'
                email_logger.error(prefix + 'Something is wrong.')

    else:
        main_logger.error(prefix + 'There is nothing to process.')
    return send_from_directory(job_dir, '/order_' + job_id + '.html')

if __name__ == '__main__':
    app.run()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...