How to use MySQL in Python/ru
#!/usr/bin/python
import sys
import MySQLdb
hostname = '127.0.0.1'
username = 'user'
password = 'pass'
database = 'db'
try:
conn = MySQLdb.connect (host = hostname,
user = username,
passwd = password,
db = database,
)
except MySQLdb.Error, e:
print "Error %d: %s" % (e.args[0], e.args[1])
sys.exit(1)
cursor = conn.cursor()
sql = """
select *
from dual
"""
cursor.execute( sql )
while (1):
row = cursor.fetchone ()
if row == None:
break
print row
Вам понравилось использовать базу данных с Питоном, и вы думаете, что MySQL это хороший выбор? Неплохо! Сперва, создайте базу данных следуя одному из руководств доступных в Вики, и храните информацию в удобном виде. Чтобы присоединиться вам потребуется следующее.
Сперва, поместите следующее в секцию(область) импорта вашего скрипта:
import _mysql
Потом, найдите где начинается главная часть вашей программы, и поместите следующее:
db = _mysql.connect(YOUR DATABASE HOST, YOUR USERNAME, YOUR PASSWORD, NAME OF THE DATABASE)
В областе функций вашей программы поместите следующее:
def FetchAll(query, method=1):
global db
db.query(query)
r = db.use_result()
return r.fetch_row(0, method)
def FetchOne(query, method=1):
global db
db.query(query)
r = db.use_result()
try:
row = r.fetch_row(1, method)[0]
except:
row = None
return row
Хотя вы могли бы напрямую обращаться к модулю _mysql , данные функции делают это намного проще.
К примеру, вы хотите запустить SELECT * FROM `users`. Можно сделать так:
users = FetchAll("SELECT * FROM `users`")
for user in users:
print user['username']
Или если вы хотите выбрать лишь одного пользователя:
user = FetchOne("SELECT * FROM `users` WHERE `username` = 'admin' LIMIT 1")
print user['username']
Если вы получаете ошибку относительно того, что объект db недоступен, возможно,что вы пытаетесь обратиться к нему как к локальной переменной. Поместите следующее в начале функции, которая выдает ошибку:
global db