Flask WSGI vs Nginx / Gunicorn: список рассылки работает в среде разработки, но не в рабочей среде

Я развернул веб-приложение Flask в капле Digital Ocean под управлением Ubuntu 18.04. Веб-приложение - это просто целевая страница с единой формой, которая добавляет адрес электронной почты посетителя в список рассылки Mailchimp.

Веб-приложение отлично работает в разработке, однако отправка формы не работает в производственной среде. Отправка формы просто перезагружает страницу. Он не отправляет адрес электронной почты в список рассылки и не отображает страницу с благодарностью.

В процессе разработки я использую сервер Flask WSGI по умолчанию для прямого доступа к веб-приложению (т.е. localhost: 5000).

В производстве я использую Nginx вместе с Gunicorn. В качестве проверки работоспособности я запустил приложение с использованием WSGI-сервера по умолчанию во Flask, и оно работало нормально.

Помимо использования Nginx и Gunicorn, код и конфигурация веб-приложения (например, идентификатор списка Mailchimp / ключ api) идентичны для обоих

Что может быть причиной этой проблемы?

0
задан 11 January 2019 в 11:47
1 ответ

Sự cố là do khóa API Mailchimp không được đọc từ tệp .flaskenv của tôi.

Trong quá trình phát triển, có vẻ như tệp .flaskenv được tải ngầm bởi python-dotenv nhưng trong quá trình sản xuất, bạn cần tải tệp một cách rõ ràng.

import os
from dotenv import load_dotenv


# explicitly load .flaskenv
basedir = os.path.abspath(os.path.dirname('__file__'))
load_dotenv(os.path.join(basedir, '.flaskenv'))


class Config(object):
    SECRET_KEY = os.environ.get('SECRET_KEY')
    MAILCHIMP_API_KEY = os.environ.get('MAILCHIMP_API_KEY')
    MAILCHIMP_LIST_ID = os.environ.get('MAILCHIMP_LIST_ID')

1
ответ дан 4 December 2019 в 15:47

Теги

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