Как сохранить данные в mysql через python - PullRequest
0 голосов
/ 09 апреля 2020

Я работаю над программой, использующей инфраструктуру проекта EEL для python, и в моем html есть форма регистрации, но я не могу передать данные в удаленную базу данных mysql, поэтому я с помощью туннеля. Соединение установлено, поэтому никаких проблем с этим нет, данные просто не сохраняются.

Вот часть моего кода

@eel.expose
def register_button(token, email, mpass):
     myToken = format(token)
     myEmail = format(email)
     myPass = format(mpass)
     if myToken == '':
          print('token is empty')
     elif myEmail == '':
          print('email is empty')
     elif myPass == '':
          print('password is empty')
   else:
    server = SSHTunnelForwarder(
        'X.X.X.X',
        ssh_username='user',
        ssh_password='pass',
        remote_bind_address=('127.0.0.1', 3306)
    )
    server.start()

    myDB = mysql.connector.connect(
        host='127.0.0.1',
        port=server.local_bind_port,
        user='user',
        password='pass',
        db='db'
    )
    myCursor = myDB.cursor()
    sql = "SELECT `iduser` FROM `uuids` WHERE `myuuid` = '%s'" % myToken
    myCursor.execute(sql)
    results = myCursor.fetchone()
    if results:
        iduserDB = results[0]
        if iduserDB is None:
            print('id is null')
            sql5 = "SELECT `email` FROM `users` WHERE `email` = '%s'" % myEmail
            myCursor.execute(sql5)
            resultz = myCursor.fetchone()
            if resultz:
                emailDB = resultz[0]
                if emailDB is None:
                    sql2 = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)"
                    val = (myEmail, myPass)
                    myCursor.execute(sql2, val)
                    myDB.commit()
                    lastRowID = myCursor.lastrowid
                    sql3 = "UPDATE `uuids` SET `iduser` = %i WHERE `uuids` = %s"
                    val3 = (lastRowID, myToken)
                    myCursor.execute(sql3, val3)
                    myDB.commit()
                else:
                    print('email is already in use')
        else:
            print('id is not null')
    else:
        return False
    myDB.close()
    server.stop()
return 'Thank you for registering!'

Концепция проста, в основном, взять данные с фронта закончите, а затем просто посмотрите, существует ли токен в базе данных uuid, если он не существует, просто перейдите вперед и проверьте, существует ли электронное письмо в базе данных, если его нет, только тогда go и вставьте данные .

Я новичок в Python, любая помощь будет принята с благодарностью. Простите, отступ в Pycharm - это то, что нужно, просто структурирование здесь с помощью copy paste.

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