SQLAlchemy Core - การเชื่อมต่อกับฐานข้อมูล
ในบทที่แล้วเราได้พูดถึงนิพจน์ภาษาใน SQLAlchemy ตอนนี้ให้เราดำเนินการตามขั้นตอนที่เกี่ยวข้องกับการเชื่อมต่อกับฐานข้อมูล
คลาสเครื่องยนต์เชื่อมต่อ Pool and Dialect together เพื่อจัดหาแหล่งฐานข้อมูล connectivity and behavior. อ็อบเจ็กต์ของคลาส Engine ถูกสร้างอินสแตนซ์โดยใช้create_engine() ฟังก์ชัน
ฟังก์ชัน create_engine () ใช้ฐานข้อมูลเป็นอาร์กิวเมนต์เดียว ฐานข้อมูลไม่จำเป็นต้องกำหนดที่ใดก็ได้ แบบฟอร์มการเรียกมาตรฐานต้องส่ง URL เป็นอาร์กิวเมนต์ตำแหน่งแรกโดยปกติจะเป็นสตริงที่ระบุภาษาถิ่นของฐานข้อมูลและอาร์กิวเมนต์การเชื่อมต่อ โดยใช้รหัสที่ระบุด้านล่างเราสามารถสร้างฐานข้อมูลได้
>>> from sqlalchemy import create_engine
>>> engine = create_engine('sqlite:///college.db', echo = True)
สำหรับ MySQL databaseใช้คำสั่งด้านล่าง -
engine = create_engine("mysql://user:pwd@localhost/college",echo = True)
ที่จะกล่าวถึงโดยเฉพาะ DB-API เพื่อใช้สำหรับการเชื่อมต่อไฟล์ URL string มีรูปแบบดังนี้ -
dialect[+driver]://user:password@host/dbname
ตัวอย่างเช่นหากคุณใช้ไฟล์ PyMySQL driver with MySQLใช้คำสั่งต่อไปนี้ -
mysql+pymysql://<username>:<password>@<host>/<dbname>
echo flagเป็นทางลัดในการตั้งค่าการบันทึก SQLAlchemy ซึ่งทำได้ผ่านโมดูลการบันทึกมาตรฐานของ Python ในบทต่อ ๆ ไปเราจะเรียนรู้ SQL ที่สร้างขึ้นทั้งหมด หากต้องการซ่อนเอาต์พุต verbose ให้ตั้งค่าแอตทริบิวต์ echo เป็นNone. อาร์กิวเมนต์อื่น ๆ ของฟังก์ชัน create_engine () อาจเป็นภาษาถิ่นเฉพาะ
ฟังก์ชัน create_engine () จะส่งกลับไฟล์ Engine object. วิธีการที่สำคัญบางประการของคลาส Engine ได้แก่ -
ซีเนียร์ | วิธีการและคำอธิบาย |
---|---|
1 | connect() ส่งคืนวัตถุการเชื่อมต่อ |
2 | execute() ดำเนินการสร้างคำสั่ง SQL |
3 | begin() ส่งกลับตัวจัดการบริบทที่ส่งการเชื่อมต่อกับธุรกรรมที่สร้างขึ้น เมื่อดำเนินการสำเร็จธุรกรรมจะถูกผูกมัดมิฉะนั้นจะถูกย้อนกลับ |
4 | dispose() การจำหน่ายพูลการเชื่อมต่อที่ใช้โดยเครื่องยนต์ |
5 | driver() ชื่อไดรเวอร์ของภาษาถิ่นที่เครื่องยนต์ใช้ |
6 | table_names() แสดงรายการชื่อตารางทั้งหมดที่มีอยู่ในฐานข้อมูล |
7 | transaction() เรียกใช้ฟังก์ชันที่กำหนดภายในขอบเขตธุรกรรม |