Как соединить 2 страницы в app.py?

Есть 2 отдельно работающие страницы:
1- это ввод данных в таблицу mysql из веб:
from flask import Flask, render_template, request
from flask_mysqldb import MySQL
import mysql.connector

app = Flask(__name__)

app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'cubinez85'
app.config['MYSQL_PASSWORD'] = '123'
app.config['MYSQL_DB'] = 'MyDB'

mysql = MySQL(app)

@app.route('/insert', methods=['GET', 'POST'])
def insert():
    if request.method == "POST":
        details = request.form
        firstName = details['fname']
        lastName = details['lname']
        position = details['position']
        cur = mysql.connection.cursor()
        cur.execute("INSERT INTO MyUsers(firstName, lastName, position) VALUES (%s, %s, %s)", (firstName, lastName, position))
        mysql.connection.commit()
        cur.close()
        return 'success'
    return render_template('index.html')

И 2 - это вывод данных из mysql таблицы в веб:
from flask import Flask
import mysql.connector

app = Flask(__name__)

db = mysql.connector.connect(
   host="localhost",
   user="cubinez85",
   password="123",
   database="MyDB"
)

cursor = db.cursor()

@app.route('/display')
def display():

    cursor.execute("select * from MyUsers")
    output = cursor.fetchall()
    res = str(output).strip('[]')

    return res
if __name__ == '__main__':
    app.run()

Если их соединить , то в error.log вылезает ошибка
AttributeError: 'MySQL' object has no attribute 'connector'

Вот app.py:
from flask import Flask, render_template, request
from flask_mysqldb import MySQL
import mysql.connector

app = Flask(__name__)

app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'cubinez85'
app.config['MYSQL_PASSWORD'] = '123'
app.config['MYSQL_DB'] = 'MyDB'

mysql = MySQL(app)

@app.route('/insert', methods=['GET', 'POST'])
def insert():
    if request.method == "POST":
        details = request.form
        firstName = details['fname']
        lastName = details['lname']
        position = details['position']
        cur = mysql.connection.cursor()
        cur.execute("INSERT INTO MyUsers(firstName, lastName, position) VALUES (%s, %s, %s)", (firstName, lastName, position))
        mysql.connection.commit()
        cur.close()
        return 'success'
    return render_template('index.html')

@app.route('/display')
def display():
    db = mysql.connector.connect(
    host="localhost",
    user="cubinez85",
    password="123",
    database="MyDB"
)

    cursor = db.cursor()
    cursor.execute("select * from MyUsers")
    output = cursor.fetchall()
    res = str(output).strip('[]')

    return res

if __name__ == '__main__':
    app.run()
  • Вопрос задан
  • 52 просмотра
Решения вопроса 1
@Everything_is_bad
import mysql.connector
mysql = MySQL(app)

так делать нельзя, ты переопределил mysql
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы