Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 16, 2016 11:04:51

Popov
Зарегистрирован: 2016-06-14
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

преобразование кода для sqlite в mysql

Напишу в подробности что нужно:
Мне нужно что бы проводился запрос на наличие совпадения в таблице пары (логин и пароль) если совпадения нет то выводил сообщение что пользователь не найден.

Нашел в youtube урок как это сделать, но вместо mysql там sqllite, в sqlite все работает.
там идет запрос

("SELECT * FROM USERS WHERE USERNAME = ? AND PASSWORD = ?",(username,password))
и проверка результата
(len(result.fetchall()) > 0):
так как Mysql нужно немного изменить логику, во всех доках пишут что нужно использовать query.next(), а как сделать не как понять не могу
мне нужно сделать так что бы запрос повторялся пока запись в таблице не кончиться или пока пара не будет найдена.
У кого есть опыт с mysql и QtSql помогите плиз






Офлайн

#2 Июнь 16, 2016 11:33:44

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

преобразование кода для sqlite в mysql

Я понял. Так мы застрянем на долго!
У вас какая то хромоножка
Подозреваю что все поля username уникальны,
тогда все что вам нужно это

# -*- coding: utf-8 -*-
import MySQLdb
db = MySQLdb.connect(host="localhost",    # your host, usually localhost
                     user="john",         # your username
                     passwd="megajonhy",  # your password
                     db="jonhydb")        # name of the data base
cur = db.cursor()
user = 'some_username'
query = "SELECT username, password FROM USERS WHERE USERNAME = '{}'".format(user)
# Use all the SQL you like
cur.execute(query)
result = cur.fetchone()
print result
cur.close()

таким образом получаете пару логин пароль и сравниваете уже где и как вам нужно.


Это как пример



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Июнь 17, 2016 03:46:58

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9976
Репутация: +  856  -
Профиль   Отправить e-mail  

преобразование кода для sqlite в mysql

Popov
Помогите сделать цикл на подобии этого if(len(query.fetchall()) > 0):
Сделай отдельный тестовый скрипт и тестовую таблицу в базе данных. Потренируйся на них без всяких окон, просто в консоль выводи данные.



Офлайн

#4 Июнь 17, 2016 08:09:05

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

преобразование кода для sqlite в mysql

Угу. Скрипт для теста постом выше.
py.user.next - все правильно вам советует!



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#5 Июнь 17, 2016 11:45:13

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9976
Репутация: +  856  -
Профиль   Отправить e-mail  

преобразование кода для sqlite в mysql

ZerG
Угу. Скрипт для теста постом выше.
Не, я имел в виду, что через Qt надо делать. Если у него программа на Qt, то и средства должны Qt'шные использоваться. Это касается всего - дат, потоков, баз данных. Там даже time.sleep() не сможешь использовать, потому что она просто не работает там.



Офлайн

#6 Июнь 17, 2016 11:56:47

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

преобразование кода для sqlite в mysql

Сделай отдельный тестовый скрипт и тестовую таблицу в базе данных. Потренируйся на них без всяких окон, просто в консоль выводи данные.
Я имел в виду пусть это сделает вобще в принцыпе без кутей ит так далее.
Что бы понять принцып и логику! Человек с базами вобще понятия ж не имеет а сразу пробует обработку в коде поменять.



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#7 Июнь 17, 2016 12:07:36

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9976
Репутация: +  856  -
Профиль   Отправить e-mail  

преобразование кода для sqlite в mysql

ZerG
Я имел в виду пусть это сделает вобще в принцыпе без кутей ит так далее.
Надо сделать с Qt, сам-то с Qt не смог пример сделать что ли?
Возьми документацию цппшную, там уже готовый пример есть, его только на питон надо перевести.
С базами-то никаких особых команд тут нет у него (кавычки забыл - ерунда).
Просто этот драйвер MySQLdb во-первых, не единственный, их много разных, а во-вторых, действия с ним сильно отличаются от действий с Qt'шным объектом. Смысл ему проходить их, если они ему не пригодятся?



Отредактировано py.user.next (Июнь 17, 2016 12:11:10)

Офлайн

#8 Июнь 17, 2016 12:09:46

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

преобразование кода для sqlite в mysql

У него проблема не с куте а с пониманием БД. Он не понимает что и как делается в его коде с базой.



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#9 Июнь 17, 2016 12:11:54

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9976
Репутация: +  856  -
Профиль   Отправить e-mail  

преобразование кода для sqlite в mysql

ZerG
Он не понимает что и как делается в его коде с базой.
Это ты с чего взял? Что-то нигде не вижу, что он не знает, как select сделать.
Смотри, он даже вопросики поставил, про которые ты не знаешь. ;)
Вот ты написал
ZerG
user = 'some_username'
query = "SELECT username, password FROM USERS WHERE USERNAME = '{}'".format(user)
# Use all the SQL you like
cur.execute(query)
Так же нельзя делать.



Отредактировано py.user.next (Июнь 17, 2016 12:14:44)

Офлайн

#10 Июнь 17, 2016 12:26:56

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

преобразование кода для sqlite в mysql

с чего ето нельзя?



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version