আমি কিভাবে Python একটি মাইএসকিউএল ডাটাবেস সংযোগ করতে পারি?




mysql (14)

মাইএসকিউএলডিবি ব্যবহার করে বন্ধ করুন যদি আপনি পাইসন থেকে mysql অ্যাক্সেস করতে mysql হেডার ইনস্টল করতে চান।

pymysql ব্যবহার করুন। এটি মাইএসকিউএলডিবি যা করে তার সবই করে, কিন্তু এটি কোনও বহিরাগত নির্ভরতা সহ পাইথনটিতে সম্পূর্ণরূপে প্রয়োগ করা হয়। এই সব অপারেটিং সিস্টেমের সামঞ্জস্যপূর্ণ এবং সহজ ইনস্টলেশন প্রক্রিয়া করে তোলে। pymysql মাইএসকিউএলডিবি এবং আইএমএইচও জন্য প্রতিস্থাপন একটি ড্রপ আছে কখনও কখনও জন্য MySQLDb ব্যবহার করার কোন কারণ নেই ... কখনও! - PTSD from installing MySQLDb on Mac OSX and *Nix systems , কিন্তু PTSD from installing MySQLDb on Mac OSX and *Nix systems আমার।

স্থাপন

pip install pymysql

এটা ... আপনি খেলার জন্য প্রস্তুত।

উদাহরণ ব্যবহার pymysql Github repo থেকে

import pymysql.cursors
import pymysql

# Connect to the database
connection = pymysql.connect(host='localhost',
                             user='user',
                             password='passwd',
                             db='db',
                             charset='utf8mb4',
                             cursorclass=pymysql.cursors.DictCursor)

try:
    with connection.cursor() as cursor:
        # Create a new record
        sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)"
        cursor.execute(sql, ('[email protected]', 'very-secret'))

    # connection is not autocommit by default. So you must commit to save
    # your changes.
    connection.commit()

    with connection.cursor() as cursor:
        # Read a single record
        sql = "SELECT `id`, `password` FROM `users` WHERE `email`=%s"
        cursor.execute(sql, ('[email protected]',))
        result = cursor.fetchone()
        print(result)
finally:
    connection.close()

ALSO - দ্রুত এবং স্বচ্ছভাবে বিদ্যমান কোডে MySQLdb প্রতিস্থাপন করুন

যদি আপনার বিদ্যমান কোডটি MySQLdb ব্যবহার করে তবে আপনি সহজেই প্যামিস্কএল দিয়ে এই সহজ প্রক্রিয়াটি ব্যবহার করতে পারেন:

# import MySQLdb << Remove this line and replace with:
import pymysql
pymysql.install_as_MySQLdb()

MySQLdb এর পরবর্তী সমস্ত রেফারেন্স স্বচ্ছভাবে pymysql ব্যবহার করবে।

একটি পাইথন প্রোগ্রাম ব্যবহার করে আমি কিভাবে মাইএসকিউএল ডাটাবেসের সাথে সংযোগ স্থাপন করব?


SqlAlchemy

SQLACCHEYY পাইথন এসকিউএল টুলকিট এবং অবজেক্ট রিলেশনাল ম্যাপার যা অ্যাপ্লিকেশন ডেভেলপারগুলিকে পূর্ণ শক্তি এবং SQL এর নমনীয়তা দেয়। SQLAKCHEY একটি দক্ষ এবং পাইথনিক ডোমেন ভাষাতে অভিযোজিত দক্ষ এবং উচ্চতর সম্পাদকীয় ডেটাবেস অ্যাক্সেসের জন্য ডিজাইন করা সুপরিচিত এন্টারপ্রাইজ স্তরের স্থিরতা নিদর্শনগুলির সম্পূর্ণ স্যুট সরবরাহ করে।

স্থাপন

pip install sqlalchemy

RAW প্রশ্ন

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, scoped_session

engine = create_engine("mysql://<user_name>:<password>@<host_name>/<db_name>")
session_obj = sessionmaker(bind=engine)
session = scoped_session(session_obj)

# insert into database
session.execute("insert into person values(2, 'random_name')")
session.flush()
session.commit()

ORM উপায়

from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, scoped_session

Base = declarative_base()
engine = create_engine("mysql://<user_name>:<password>@<host_name>/<db_name>")
session_obj = sessionmaker(bind=engine)
session = scoped_session(session_obj)

# Bind the engine to the metadata of the Base class so that the
# declaratives can be accessed through a DBSession instance
Base.metadata.bind = engine

class Person(Base):
    __tablename__ = 'person'
    # Here we define columns for the table person
    # Notice that each column is also a normal Python instance attribute.
    id = Column(Integer, primary_key=True)
    name = Column(String(250), nullable=False)

# insert into database
person_obj = Person(id=12, name="name")
session.add(person_obj)
session.flush()
session.commit()

MySQLLclient সেরা হিসাবে অন্যদের শুধুমাত্র পাইথন নির্দিষ্ট সংস্করণ সমর্থন প্রদান

 pip install mysqlclient

উদাহরণ কোড

    import mysql.connector
    import _mysql
    db=_mysql.connect("127.0.0.1","root","umer","sys")
    #db=_mysql.connect(host,user,password,db)
    # Example of how to insert new values:
    db.query("""INSERT INTO table1 VALUES ('01', 'myname')""")
    db.store_result()
    db.query("SELECT * FROM new1.table1 ;") 
    #new1 is scheme table1 is table mysql 
    res= db.store_result()
    for i in range(res.num_rows()):
        print(result.fetch_row())

https://github.com/PyMySQL/mysqlclient-python


MySQLdb ব্যবহার করে দেখুন

এখানে কিভাবে একটি পৃষ্ঠা আছে: 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 ()

আপনি এই ভাবে MySQL এ আপনার পাইথন কোড সংযোগ করতে পারেন।

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

cursor = db.cursor()

উপরের সমস্ত উত্তর সত্ত্বেও, যদি আপনি কোনও নির্দিষ্ট ডেটাবেসকে সামনে থেকে সংযোগ করতে না চান তবে উদাহরণস্বরূপ, যদি আপনি ডাটাবেসটি এখনও তৈরি করতে চান (!), তবে আপনি নিম্নলিখিত অংশে connection.select_db(database) হিসাবে সংযোগ.অ্যলে_ডিবি connection.select_db(database) ব্যবহার করতে পারেন।

import pymysql.cursors
connection = pymysql.connect(host='localhost',
                         user='mahdi',
                         password='mahdi',
                         charset='utf8mb4',
                         cursorclass=pymysql.cursors.DictCursor)
cursor = connection.cursor()
cursor.execute("CREATE DATABASE IF NOT EXISTS "+database)
connection.select_db(database)
sql_create = "CREATE TABLE IF NOT EXISTS "+tablename+(timestamp DATETIME NOT NULL PRIMARY KEY)"
cursor.execute(sql_create)
connection.commit()
cursor.close()

এখানে এটি করার একটি উপায়:

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

এখানে রেফারেন্স


এছাড়াও ঝড় একটি চেহারা নিতে। এটি একটি সহজ এসকিউএল ম্যাপিং সরঞ্জাম যা আপনাকে সহজেই সম্পাদনা এবং SQL লেখার প্রশ্নগুলি লেখার ব্যতীত তৈরি করতে দেয়।

এখানে একটি সহজ উদাহরণ:

from storm.locals import *

# User will be the mapped object; you have to create the table before mapping it
class User(object):
        __storm_table__ = "user" # table name
        ID = Int(primary=True) #field ID
        name= Unicode() # field name

database = create_database("mysql://root:[email protected]:3306/databaseName")
store = Store(database)

user = User()
user.name = u"Mark"

print str(user.ID) # None

store.add(user)  
store.flush() # ID is AUTO_INCREMENT

print str(user.ID) # 1 (ID)

store.commit() # commit all changes to the database

অনুসন্ধান এবং ব্যবহার বস্তু:

michael = store.find(User, User.name == u"Michael").one()
print str(user.ID) # 10

প্রাথমিক কী দিয়ে খুঁজুন:

print store.get(User, 1).name #Mark

আরও তথ্যের জন্য tutorial


পাইথন ডাটাবেস অ্যাপ্লিকেশন লিখতে, অনুসরণ করার জন্য পাঁচটি ধাপ রয়েছে:

নিম্নলিখিত কমান্ড দিয়ে SQL ইন্টারফেস আমদানি করুন:

>>> import MySQLdb

নিম্নলিখিত কমান্ড দিয়ে ডাটাবেসের সাথে একটি সংযোগ স্থাপন করুন:

conn = MySQLdb.connect (host = 'localhost', ব্যবহারকারী = 'root', passwd = '') ... যেখানে হোস্টটি আপনার হোস্ট মেশিনের নাম, ব্যবহারকারীর নাম এবং পাসওয়ার্ড অনুসরণ করে। রুটের ক্ষেত্রে, পাসওয়ার্ড সরবরাহ করার প্রয়োজন নেই।

নিম্নলিখিত কমান্ডের সাথে সংযোগের জন্য একটি কার্সার তৈরি করুন:

>>>cursor = conn.cursor()

এই কার্সারটি ব্যবহার করে যে কোনও এসকিউএল ক্যোয়ারী প্রয়োগ করুন নীচে দেখানো হয়েছে - এখানে এই প্রশ্নের দ্বারা প্রভাবিত কয়েকটি সারি দেখানোর ফলাফলগুলি আউটপুট:

cursor.execute ('ডাটাবেস লাইব্রেরি তৈরি করুন') // কত সারি প্রভাবিত করে তা নির্দেশ করে

>>> cursor.execute('use Library')

>>>table='create table books(book_accno char(30) primary key, book_name
char(50),no_of_copies int(5),price int(5))'
>>> cursor.execute(table)

অবশেষে, ফলাফল সেট আনুন এবং এই ফলাফল সেট উপর পুনরাবৃত্তি। এই পদক্ষেপে, ব্যবহারকারী নীচের হিসাবে ফলাফল সেট আনতে পারেন:

>>> cursor.execute('select * from books')
>>> cursor.fetchall()

(('পি -9098', 'পাইথন সহ প্রোগ্রামিং', 100L, 50L), ('পি -99099', 'পাইথন সহ প্রোগ্রামিং', 100L, 50L))


পাইথন থেকে মাইএসকিউএল সংযোগ করার সর্বোত্তম উপায় মাইএসকিউএল সংযোগকারী / পাইথন ব্যবহার করুন কারণ পাইথনটির সাথে কাজ করার জন্য এটি MySQL এর জন্য সরকারী ও ওরাকল ড্রাইভার এবং এটি পাইথন 3 এবং পাইথন 2 উভয়ের সাথে কাজ করে।

মাইএসকিউএল সংযোগ করতে নিচের পদক্ষেপগুলি অনুসরণ করুন

  1. পিপ ব্যবহার করে সংযোগকারী ইনস্টল করুন

    pip install mysql-connector-python

অথবা আপনি https://dev.mysql.com/downloads/connector/python/ থেকে ইনস্টলার ডাউনলোড করতে পারেন

  1. connect() পদ্ধতিটি সংযোগ করার জন্য প্রয়োজনীয় যুক্তিটি MySQL.pass এ সংযোগ করতে MySQL সংযোগকারী পাইথনের connect() পদ্ধতি ব্যবহার করুন। অর্থাৎ হোস্ট, ব্যবহারকারীর নাম, পাসওয়ার্ড, এবং ডাটাবেস নাম।

  2. এসকিউএল ক্যোয়ারী চালানোর জন্য connect() পদ্ধতি দ্বারা ফেরত সংযোগ বস্তুর থেকে cursor বস্তু তৈরি করুন।

  3. আপনার কাজ সম্পন্ন করার পরে সংযোগ বন্ধ করুন।

উদাহরণ :

import mysql.connector
 from mysql.connector import Error
 try:
     conn = mysql.connector.connect(host='hostname',
                         database='db',
                         user='root',
                         password='passcode')
     if conn.is_connected():
       cursor = conn.cursor()
       cursor.execute("select database();")
       record = cursor.fetchall()
       print ("Your connected to - ", record)
 except Error as e :
    print ("Print your error msg", e)
 finally:
    #closing database connection.
    if(conn.is_connected()):
       cursor.close()
       conn.close()

রেফারেন্স - https://pynative.com/python-mysql-database-connection/

মাইএসকিউএল সংযোগকারী পাইথন এর গুরুত্বপূর্ণ API

  • DML ক্রিয়াকলাপগুলির জন্য - cursor.execute() চালানোর জন্য cursor.execute() এবং cursor.executemany() ব্যবহার করুন। এবং এই ব্যবহার করার পরে connection.commit() ব্যবহার করে আপনার পরিবর্তনগুলি ডিবিতে পরিবর্তন করুন

  • ডেটা আনতে - অনুসন্ধান এবং cursor.fetchall() চালানোর জন্য cursor.execute() ব্যবহার করুন। cursor.execute() cursor.fetchall() , cursor.fetchone() , cursor.fetchmany(SIZE) ডেটা আনতে


প্রথমে ড্রাইভার ইনস্টল করুন

pip install MySQL-python   

তারপর একটি মৌলিক কোড এই মত যায়:

#!/usr/bin/python
import MySQLdb

try:
    db = MySQLdb.connect(host="localhost",      # db server, can be a remote one 
                     db="mydb"                  # database
                     user="mydb",               # username
                     passwd="mydb123",          # password for this username
                     )        

    # Create a Cursor object
    cur = db.cursor()

    # Create a query string. It can contain variables
    query_string = "SELECT * FROM MY_TABLE"

    # Execute the query
    cur.execute(query_string)

    # Get all the rows present the database
    for each_row in cur.fetchall():
        print each_row

    # Close the connection
    db.close()
except Exception, e:
    print 'Error ', e 

প্রথমে, পাইথন-মাইএসকিউএল সংযোগকারীটি https://dev.mysql.com/downloads/connector/python/ থেকে ইনস্টল করুন

পাইথন কনসোল এ লিখুন:

pip install mysql-connector-python-rf
import mysql.connector

শুধু উপরে উত্তর একটি পরিবর্তন। পাইথনের জন্য mysql ইনস্টল করার জন্য এই কমান্ডটি চালান

sudo yum install MySQL-python
sudo apt-get install MySQL-python

স্মরণ! এটা কেস সংবেদনশীল।


MySQLdb সহজবোধ্য উপায়। আপনি একটি সংযোগ উপর এসকিউএল প্রশ্ন চালানো পেতে। সময়কাল।

আমার পছন্দের উপায়, যা SQLAlchemy পরিবর্তে শক্তিশালী SQLAlchemy ব্যবহার করা হয়। এখানে একটি প্রশ্ন সম্পর্কিত টিউটোরিয়াল রয়েছে, এবং এখানে SQLAchemy এর ORM ক্ষমতাগুলির একটি টিউটোরিয়াল রয়েছে।





mysql