Как мне подключиться к базе данных MySQL на Python?

Чисто и просто JSfiddle

Это будет полезно, если вы хотите, чтобы событие вызывалось косвенно из div или кнопки.









1089
задан George Stocker 28 July 2011 в 17:48
поделиться

5 ответов

MySQLdb является простым путем. Вы добираетесь для выполнения SQL-запросов по соединению. Период.

Мой предпочтительный путь, который является также pythonic, состоит в том, чтобы использовать могущественное SQLAlchemy вместо этого. Вот , запрос имел отношение учебное руководство, и здесь является учебным руководством на возможности ORM из SQLALchemy.

8
ответ дан muhuk 28 July 2011 в 17:48
поделиться

Попытайтесь использовать MySQLdb. MySQLdb только поддерживает Python 2.

существует, как разбить на страницы здесь: http://www.kitebird.com/articles/pydbapi.html

<час>

От страницы:

# server_version.py - retrieve and display database server version

import MySQLdb

conn = MySQLdb.connect (host = "localhost",
                        user = "testuser",
                        passwd = "testpass",
                        db = "test")
cursor = conn.cursor ()
cursor.execute ("SELECT VERSION()")
row = cursor.fetchone ()
print "server version:", row[0]
cursor.close ()
conn.close ()
21
ответ дан Flimm 28 July 2011 в 17:48
поделиться

Вот один способ сделать это, с помощью MySQLdb, который только поддерживает Python 2:

#!/usr/bin/python
import MySQLdb

# Connect
db = MySQLdb.connect(host="localhost",
                     user="appuser",
                     passwd="",
                     db="onco")

cursor = db.cursor()

# Execute SQL select statement
cursor.execute("SELECT * FROM location")

# Commit your changes if writing
# In this case, we are only reading data
# db.commit()

# Get the number of rows in the resultset
numrows = cursor.rowcount

# Get and display one row at a time
for x in range(0, numrows):
    row = cursor.fetchone()
    print row[0], "-->", row[1]

# Close the connection
db.close()

Ссылка здесь

177
ответ дан Flimm 28 July 2011 в 17:48
поделиться

Соединение с MySQL с Python 2 в трех шагах

1 - Установка

необходимо установить драйвер MySQL прежде, чем сделать что-либо. В отличие от PHP, Только драйвер SQLite установлен по умолчанию с Python. Наиболее используемый пакет, чтобы сделать так MySQLdb, но трудно установить его с помощью easy_install. Обратите внимание, что MySQLdb только поддерживает Python 2.

Для пользователя Windows, можно добраться exe MySQLdb.

Для Linux, это - случайный пакет (python-mysqldb). (Можно использовать sudo apt-get install python-mysqldb (для базирующихся дистрибутивов debian), yum install MySQL-python (для основанного на об/мин), или dnf install python-mysql (для современного фетрового дистрибутива) в командной строке для загрузки.)

Для Mac, Вы можете установка MySQLdb с помощью Macport.

2 - Использование

После установки, Перезагрузки. Это не обязательно, Но это будет препятствовать тому, чтобы я ответил на 3 или 4 других вопроса в этом сообщении, если что-то пойдет не так, как надо. Поэтому перезагрузка.

Тогда это точно так же, как использует любой другой пакет:

#!/usr/bin/python
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

# you must create a Cursor object. It will let
#  you execute all the queries you need
cur = db.cursor()

# Use all the SQL you like
cur.execute("SELECT * FROM YOUR_TABLE_NAME")

# print all the first cell of all the rows
for row in cur.fetchall():
    print row[0]

db.close()

, Конечно, существует тысяча возможностей и опций; это - очень простой пример. Необходимо будет посмотреть на документацию. А хорошая начальная точка .

3 - Более усовершенствованное использование

, Как только Вы знаете, как оно работает, можно хотеть использовать ORM, чтобы не писать SQL вручную и управлять таблицами, поскольку они были объектами Python. Самый известный ORM в сообществе Python SQLAlchemy.

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

я недавно обнаружил другой драгоценный камень в мире Python: человек маленького роста . Это - очень облегченный ORM, действительно легкий и быстрый для установки тогда использования. Это делает мой день для маленьких проектов или автономных приложений, Где использование крупных инструментов как SQLAlchemy или Django является излишеством:

import peewee
from peewee import *

db = MySQLDatabase('jonhydb', user='john', passwd='megajonhy')

class Book(peewee.Model):
    author = peewee.CharField()
    title = peewee.TextField()

    class Meta:
        database = db

Book.create_table()
book = Book(author="me", title='Peewee is cool')
book.save()
for book in Book.filter(author="me"):
    print book.title

Этот пример работает из поля. Ничто кроме наличия человека маленького роста (pip install peewee) не требуется.

1218
ответ дан 22 revs, 19 users 70% 29 July 2011 в 04:48
поделиться

Даже при том, что некоторые из Вас могут отметить это как дубликат и нарушаться, что я копирую чужой ответ, я был бы ДЕЙСТВИТЕЛЬНО , любят выделять аспект ответа г-на Napik. Поскольку я пропустил это, я вызвал общенациональное время простоя веб-сайта (9 минут) и стоил моей компании тысячи долларов. Если только кто-то поделился этой информацией, я, возможно, предотвратил ее!

Вот его код:

import mysql.connector    
cnx = mysql.connector.connect(user='scott', password='tiger',
                              host='127.0.0.1',
                              database='employees')
try:
   cursor = cnx.cursor()
   cursor.execute("""select 3 from your_table""")
   result = cursor.fetchall()
   print(result)
finally:
    cnx.close()

важная вещь здесь Попытка и Наконец пункт. Это позволяет соединения с ВСЕГДА быть закрытым, независимо от того, что происходит в cursor/sqlstatement части кода. Много активных соединений заставляет DBLoadNoCPU пронзать и могло разрушить сервер дб.

я надеюсь, что это предупреждение помогает сохранить серверы и в конечном счете задания! :D

0
ответ дан 19 December 2019 в 20:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: