Flask Ошибка: (фон этой ошибки: http://sqlalche.me/e/e3q8) - PullRequest
0 голосов
/ 26 апреля 2020

Я создавал приложение, используя Flask с помощью Учебного пособия на YouTube, но застрял в ошибке

Я создал контактную форму с некоторыми полями после ввода данных и отправки. Она отображается как Внутренняя ошибка сервера , и я не знаю, как исправить эту проблему

Коды моей программы перечислены ниже:

Python Файл: (Я делаю все мои Python Кодирование в Pycharm IDE)

from flask_sqlalchemy import SQLAlchemy


app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:@localhost/contacts'
db = SQLAlchemy(app)

class Contact(db.Model):
    srno = db.Column(db.Integer, primary_key=True)
    first_name = db.Column(db.String(80), nullable=False)
    last_name = db.Column(db.String(80), nullable=True)
    email = db.Column(db.String(20), nullable=False)
    subject = db.Column(db.String(50), nullable=False)
    msg = db.Column(db.String(150), nullable=False)
    phone_num = db.Column(db.String(12), nullable=False)


@app.route('/')
def hello_world():
    return render_template('index.html')

@app.route('/contact', methods = ['GET', 'POST'])
def contact():
    if request.method == 'POST':
        firs = request.form.get('name')
        emai = request.form.get('email')
        subj = request.form.get('subject')
        message = request.form.get('mesg')
        phone = request.form.get('phone')
        entry = Contact(first_name=firs, email=emai, subject=subj, msg=message, phone_num=phone)
        db.session.add(entry)
        db.session.commit()
    return render_template('contact.html')


app.run()

И мои HTML сценарии для контактной формы на Сайте:

                    <span class="contact100-form-title">
                        Get in touch
                    </span>

                    <div class="wrap-input100 validate-input" data-validate = "Name is required">
                        <input class="input100" type="text" name="name" placeholder="Name">
                        <span class="focus-input100"></span>
                        <span class="symbol-input100">
                            <i class="fa fa-user" aria-hidden="true"></i>
                        </span>
                    </div>

                    <div class="wrap-input100 validate-input" data-validate = "Valid email is required: ex@abc.xyz">
                        <input class="input100" type="text" name="emai" placeholder="Email">
                        <span class="focus-input100"></span>
                        <span class="symbol-input100">
                            <i class="fa fa-envelope" aria-hidden="true"></i>
                        </span>
                    </div>

                    <div class="wrap-input100 validate-input" data-validate = "Phone is required">
                        <input class="input100" type="text" name="phone" placeholder="Phone Number">
                        <span class="focus-input100"></span>
                        <span class="symbol-input100">
                            <i class="fa fa-user" aria-hidden="true"></i>
                        </span>
                    </div>


                    <div class="wrap-input100 validate-input" data-validate = "Subject is required">
                        <input class="input100" type="text" name="subject" placeholder="Subject for Contact">
                        <span class="focus-input100"></span>
                        <span class="symbol-input100">
                            <i class="fa fa-user" aria-hidden="true"></i>
                        </span>
                    </div>



                    <div class="wrap-input100 validate-input" data-validate = "Message is required">
                        <textarea class="input100" name="mesg" placeholder="Message"></textarea>
                        <span class="focus-input100"></span>
                    </div>

                    <div class="container-contact100-form-btn">
                        <button class="contact100-form-btn" type="submit">
                            Send
                        </button>
                    </div>
                </form>

Так может ли кто-нибудь, пожалуйста, помогите мне разобраться- из этой проблемы

1 Ответ

0 голосов
/ 26 апреля 2020

Первое, что приходит на ум, это то, что вы не позвонили db.init_app(app), позвоните сразу после вашего класса контактов

Измените способ доступа к запросу из формы элементов. Используйте это

name=request.form['name']

Также кажется, что вы не импортировали flask from flask import Flask

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...