sql >> Database >  >> RDS >> Mysql

Hoe maak ik verbinding met een MySQL-database in Python?

In drie stappen verbinding maken met MYSQL met Python 2

1 - Instelling

U moet een MySQL-stuurprogramma installeren voordat u iets doet. In tegenstelling tot PHP wordt standaard alleen het SQLite-stuurprogramma met Python geïnstalleerd. Het meest gebruikte pakket om dit te doen is MySQLdb maar het is moeilijk om het te installeren met easy_install. Let op:MySQLdb ondersteunt alleen Python 2.

Voor Windows-gebruikers kunt u een exe van MySQLdb krijgen .

Voor Linux is dit een casual pakket (python-mysqldb). (U kunt sudo apt-get install python-mysqldb gebruiken (voor op Debian gebaseerde distributies), yum install MySQL-python (voor op rpm gebaseerd), of dnf install python-mysql (voor moderne fedora distro) in de opdrachtregel om te downloaden.)

Voor Mac kunt u MySQLdb installeren met Macport .

2 - Gebruik

Na de installatie, herstart. Dit is niet verplicht, maar het weerhoudt mij ervan om 3 of 4 andere vragen in dit bericht te beantwoorden als er iets misgaat. Dus start opnieuw op.

Dan is het net als elk ander pakket:

#!/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()

Natuurlijk zijn er duizenden mogelijkheden en opties; dit is een heel eenvoudig voorbeeld. Je zult de documentatie moeten bekijken. Een goed startpunt .

3 - Geavanceerder gebruik

Als je eenmaal weet hoe het werkt, wil je misschien een ORM gebruiken om te voorkomen dat u handmatig SQL schrijft en uw tabellen manipuleert alsof het Python-objecten zijn. De meest bekende ORM in de Python-gemeenschap is SQLAlchemy .

Ik raad je ten zeerste aan om het te gebruiken:je leven wordt veel gemakkelijker.

Ik ontdekte onlangs een ander juweel in de Python-wereld:peewee . Het is een zeer lichte ORM, heel gemakkelijk en snel in te stellen en te gebruiken. Het maakt mijn dag goed voor kleine projecten of op zichzelf staande apps, waar het gebruik van grote tools zoals SQLAlchemy of Django overkill is:

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

Dit voorbeeld werkt out-of-the-box. Niets anders dan peewee hebben (pip install peewee ) is vereist.



  1. Divisie ( / ) geeft mijn antwoord niet in postgresql

  2. Meerdere plannen voor een identieke zoekopdracht

  3. SQLcl om gegevens over te zetten van Oracle naar PostgreSQL of YugabyteDB 🅾🐘🚀

  4. Hoe de tafel in orakel te laten vallen