Я пытаюсь использовать приложение Python cpanel для своего приложения python из-за проблем с доменом на моем сервере NGINX.
Я настроил приложение python и установил все модули для запуска приложения.Приложение работает нормально, но на странице контактов, когда я пытаюсь отправить информацию контактной формы, я получаю внутреннюю ошибку сервера 500.
Код отлично работал на сервере NGINX.Мне пришлось изменить несколько вещей, чтобы заставить код работать в приложении python в cpanel, но это был просто файл passenger_wsgi.py и app.run в моем файле main.py
Вот мой код дляapp.py (основной файл Python)
import os
from flask import Flask, render_template, request
from flask_mail import Mail, Message
from forms import ContactForm
mail = Mail()
app = Flask(__name__)
app.secret_key = os.urandom(32)
app.config["MAIL_SERVER"] = "mail.example.co.za"
app.config["MAIL_PORT"] = 25
app.config["MAIL_USE_SSL"] = False
app.config["MAIL_USE_TLS"] = False
app.config["MAIL_USERNAME"] = 'info@exmple.co.za'
app.config["MAIL_PASSWORD"] = 'example'
mail.init_app(app)
application = app
@app.route('/')
def home():
return render_template('index.jinja2')
@app.route('/contact_us', methods=['GET', 'POST'])
def contact_us():
form = ContactForm()
if request.method == 'POST':
msg = Message(form.subject.data, sender=form.email.data, recipients=['info@example.co.za'])
msg.body = """
From: %s
Company Name: %s
Message: %s
""" % (form.full_name.data, form.company.data, form.message.data)
mail.send(msg)
return render_template('contact_us.jinja2', success=True, form=form)
elif request.method == 'GET':
return render_template('contact_us.jinja2', form=form)
if __name__ == "__main__":
app.run()
Это код form.py
from flask_wtf import Form
from wtforms import StringField, TextAreaField, SubmitField
from wtforms.validators import DataRequired, Email
class ContactForm(Form):
full_name = StringField('Name', validators=[DataRequired('Please add your name')])
email = StringField('Email',
validators=[DataRequired('Please enter your email'), Email('Please enter a valid email')])
subject = StringField('Subject', validators=[DataRequired('Please enter the subject of this email')])
company = StringField('Company', validators=[DataRequired('Please enter your company name')])
message = TextAreaField('message', validators=[DataRequired('Please enter a message')])
submit = SubmitField("Send")
Это форма на странице контактов
<div class="card-body form">
{% if success %}
<p class="lead text-success">Thank you for feedback !</p>
{% endif %}
<form method="post" action="{{ url_for('contact_us') }}">
<div class="row">
<div class="col-md-6">
<div class="md-form mb-0">
{% for error in form.full_name.errors %}
<span style="color: red;">[{{ error }}]</span>
{% endfor %}
{{ form.full_name(class='form-control', id='form-contact-name') }}
{{ form.full_name.label(for='form-contact-name') }}
</div>
</div>
<div class="col-md-6">
<div class="md-form mb-0">
{% for error in form.email.errors %}
<span style="color: red;">[{{ error }}]</span>
{% endfor %}
{{ form.email(class='form-control', id='form-contact-email') }}
{{ form.email.label(for='form-contact-email') }}
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="md-form mb-0">
{% for error in form.company.errors %}
<span style="color: red;">[{{ error }}]</span>
{% endfor %}
{{ form.company(class='form-control', id='form-contact-company') }}
{{ form.company.label(for='form-contact-company') }}
</div>
</div>
<div class="col-md-6">
<div class="md-form mb-0">
{% for error in form.subject.errors %}
<span style="color: red;">[{{ error }}]</span>
{% endfor %}
{{ form.subject(class='form-control', id='form-contact-subject') }}
{{ form.subject.label(for='form-contact-subject') }}
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="md-form mb-0">
{% for error in form.message.errors %}
<span style="color: red;">[{{ error }}]</span>
{% endfor %}
{{ form.message(class='form-control md-textarea', id='form-contact-message') }}
{{ form.message.label(for='form-contact-message') }}
<div class="text-center text-md-left">
{{ form.submit(class='btn btn-sm rounded btn-primary') }}
</div>
</div>
</div>
</div>
</form>
</div>
Я изменил адрес электронной почты и пароль к примеру.Нет журналов ошибок или кодов, только выдает мне 500 Внутренняя ошибка сервера после нажатия кнопки отправки.Иначе все остальное в приложении загружается отлично.
Если есть какие-либо документы по этой проблеме, было бы здорово.Я около 4 дней гуглял и не смог найти какую-либо достоверную информацию о проблеме или о том, как заставить ее работать.