#python #flask #heroku
Вопрос:
У меня есть приложение Flask, работающее на Heroku, которое собирает и обрабатывает отправленные формы. Проблема в том, что весь интерфейс формы (поля и все остальное) должен отображаться на самом Heroku, он отделен от моего основного веб-сайта. Структура примерно такая: сценарий колбы:
def create_app():
app = Flask(__name__)
assets._named_bundles = {}
register_extensions(app)
@app.route('/success')
def success():
# replace this with a query from whatever database you're using
# access the result in the tempalte, for example {{ result.name }}
return render_template('success.html')
@app.route("/", methods =["GET", "POST"])
def index():
uid = uuid.uuid4().hex[:10]
if request.method == "POST":
# Get User Details
authorname = request.form["name"]
email = request.form["email"]
# And so on
return render_template("index.html", unique_id = uid) # print(uploadmedia.filename)
и форма выглядит так:
<form id="form" action="{{ url_for("index")}}" method="post" enctype="multipart/form-data">
# Form content follows
Итак, прямо сейчас это показано на index.html
том, что визуализируется с помощью скрипта Python. Проблема в том , что если мой веб-сайт находится на www.xyz.com
, пользователь должен перейти на www.submission-form.herokuapp.com
него, чтобы отправить заявку. Возможно ли, чтобы на Heroku был запущен только скрипт python для обработки отправлений, но чтобы на моем веб-сайте был интерфейс формы, чтобы он отправлял запрос на публикацию в приложение Heroku?
Я пробовал что — то в этом роде:
<form id="form" action="https://submission-form.herokuapp.com/" method="post" enctype="multipart/form-data">
Где я ссылаюсь на URL-адрес приложения. Поскольку в скрипте он ищет запрос на публикацию для индексирования страницы, я думал, что это сработает. Это приводит меня к следующей ошибке:
500 Internal Server Error
Как мне «отделить» интерфейс формы и логику обработки, чтобы их можно было размещать независимо друг от друга?
Если это поможет, код для моего скрипта на Python находится здесь, а интерфейс формы-здесь.