ลองใช้ Supabase API ในการทำ CRUB ด้วยภาษา python

SQL Knowledge ทั้ง sql มาตรฐาน หลักการออกแบบฐานข้อมูล ความสัมพันธ์ของ ตาราง Mysql , PGSQL, Oracle, MSSQL

Moderator: mindphp, ผู้ดูแลกระดาน

tnanun
PHP Full Member
PHP Full Member
โพสต์: 36
ลงทะเบียนเมื่อ: 05/08/2024 9:09 am

ลองใช้ Supabase API ในการทำ CRUB ด้วยภาษา python

โพสต์ที่ยังไม่ได้อ่าน โดย tnanun »

ในยุคปัจจุบันที่การพัฒนาแอปพลิเคชันและเว็บไซต์มีความต้องการการจัดการข้อมูลที่มีประสิทธิภาพและรวดเร็ว การใช้ API เป็นวิธีที่นิยมในการเชื่อมต่อและจัดการกับฐานข้อมูล Supabase ซึ่งเป็น Backend-as-a-Service (BaaS) ที่มีพื้นฐานบน PostgreSQL ได้กลายเป็นเครื่องมือที่ได้รับความนิยมอย่างแพร่หลาย ไม่เพียงแค่มีความสามารถในการจัดการข้อมูลแบบเรียลไทม์ แต่ยังรองรับการทำงานร่วมกับ API ที่ใช้งานง่าย ด้วยการใช้ภาษา Python นักพัฒนาสามารถทำการดำเนินการพื้นฐานกับฐานข้อมูล เช่น การสร้าง (Create), การอ่าน (Read), การอัปเดต (Update) และการลบ (Delete) หรือที่รู้จักกันในชื่อย่อว่า CRUD ได้อย่างง่ายดาย บทความนี้จะพาไปรู้จักกับวิธีการใช้ Supabase API ร่วมกับ Python เพื่อทำ CRUD บนฐานข้อมูล พร้อมทั้งอธิบายขั้นตอน เพื่อให้สามารถนำไปปรับใช้ในโปรเจกต์ของตนเองได้ทันที
  • หน้าตาเว็บไซต์เมื่อเข้ามาครั้งแรก กด start your project ที่มุมขวาบนได้เลย
หน้าตาเว็บไซส์.png
หน้าตาเว็บไซส์.png (87.32 KiB) Viewed 1062 times
  • เมื่อเข้ามาแล้วก็จะเห็นหน้า Dashboard ของเรา กด New Project ได้เลยครับ
dashboard.png
dashboard.png (52.88 KiB) Viewed 1062 times
  • กรอกรายละเอียด และกด Create new project ได้เเลยครับ
create-project.png
create-project.png (107.94 KiB) Viewed 1062 times
  • หลังจากนั้นเว็บก็จะกำลัง setting up project เราก็จะเห็น Key ต่างๆด้านขวา ส่วนที่เราจะใช้ก็คือตัวแรกเลย
api-key.png
api-key.png (99.82 KiB) Viewed 1062 times
  • เมื่อทำการ set up แล้วไปที่ฝั่งด้ายซ้ายคลิ๊กที่ Table Editor
project-page.png
project-page.png (83.93 KiB) Viewed 1062 times
[/b][/b]
  • เราก็จะมาสร้าง Table สำหรับเก็บข้อมูลกันก่อนนะครับในที่นี้ผมขอสร้าง table ชื่อ “task” กด Create a new table ได้เลย
database.png
database.png (49.54 KiB) Viewed 1062 times
  • โดยเรากรอกข้อมูล หรือเพิ่ม columns ตั้งค่าต่างๆได้ตามในเลยในที่นี้ขอเอาตามนี้ก่อนนะครับเสร็จแล้วกด save ได้เลย
สร้าง-table.png
สร้าง-table.png (89.52 KiB) Viewed 1062 times
  • จะได้ table ว่างเปล่าแบบนี้ หลังจากนี้เราจะลองใช้ API ของ Supabase กัน
table-task.png
table-task.png (38.02 KiB) Viewed 1062 times
  • ไปที่แถบด้านซ้ายแล้วเลือก Project settings จากนั้นเลือก API
project-settings.png
project-settings.png (17.4 KiB) Viewed 1062 times
  • เมื่อมาถึงหน้านี้แล้วเราจะได้ใช้ url และ key จาก 1 และ 2 เพื่อเชื่อมต่อกับฐานข้อมูล
api-key.png
api-key.png (99.82 KiB) Viewed 1062 times
ติดตั้งไลบรารีที่จำเป็น

โค้ด: เลือกทั้งหมด

pip install supabase
การเชื่อมต่อกับ Supabase

โค้ด: เลือกทั้งหมด

from supabase import create_client

# ใส่ข้อมูลที่ได้รับจาก Supabase
url = "https://your-project-url.supabase.co"
key = "your-public-api-key"

# สร้างการเชื่อมต่อ
supabase = create_client(url, key)
การทำงานของโค้ด เรียกใช้ create_client จาก ไลบรารี supabase โดยส่ง url, key และเก็บไว้ที่ตัวแปร supabase เพื่อไว้ใช้ฐานข้อมูลผ่าน API ของ Supabase

การทำ CRUD ด้วย Supabase
1. Create (สร้างข้อมูลใหม่)
ในการสร้างข้อมูลใหม่ สามารถใช้คำสั่ง insert เพื่อเพิ่มข้อมูลเข้าไปในตารางที่กำหนด

โค้ด: เลือกทั้งหมด

data = {"title": "Buy groceries"}
response = supabase.table("task").insert(data).execute()
print(response.data)
การทำงานของโค้ด บรรทัดแรกสร้างตัวแปร data เก็บสิ่งที่จะทำ บรรทัดต่อมานี้เป็นการใช้ไลบรารี supabase เพื่อทำการแทรกข้อมูล (insert) ลงในตาราง task ในฐานข้อมูลและแสดงผลลัพธ์ออกมา
ผลลัพธ์:

โค้ด: เลือกทั้งหมด

[
    {
        "id": 1,
        "title": "Buy groceries"
    }
]

2. Read (อ่านข้อมูล)
การดึงข้อมูลรายการทั้งหมดในตาราง "task":

โค้ด: เลือกทั้งหมด

response = supabase.table("task").select("*").execute()
print(response.data)
การทำงานของโค้ด ใช้ไลบรารี supabase เพื่อทำการนำข้อมูลจากตาราง task มาแสดงผล
ผลลัพธ์:

โค้ด: เลือกทั้งหมด

[
    {
        "id": 1,
        "title": "Buy groceries"
    }
]

3. Update (แก้ไขข้อมูล)
สมมติว่าต้องการเปลี่ยนชื่อเรื่องของงานที่มี id เท่ากับ 1:

โค้ด: เลือกทั้งหมด

response = supabase.table("task").update({"title": "Buy groceries and cook dinner"}).eq("id", 1).execute()
print(response.data)
การทำงานของโค้ด ใช้ไลบรารี supabase เพื่อทำการแก้ไขข้อมูล title ของ id 1 จากตาราง task และมาแสดงผลค่าที่แก้ไขแล้ว
ผลลัพธ์:

โค้ด: เลือกทั้งหมด

[
    {
        "id": 1,
        "title": "Buy groceries and cook dinner"
    }
]

4. Delete (ลบข้อมูล)
สมมติว่ต้องการลบงานที่มี id เท่ากับ 1:

โค้ด: เลือกทั้งหมด

response = supabase.table("task").delete().eq("id", 1).execute()
print(response.data)
การทำงานของโค้ด ใช้ไลบรารี supabase เพื่อทำการลบข้อมูล id 1 จากตาราง task และมาแสดงผล
ผลลัพธ์ หลังจากที่ลบรายการที่ id เท่ากับ 1 ออกไป ตารางจะไม่เหลือข้อมูลของงานนั้นแล้วครับ

นี่ก็เป็นอีกหนึ่งวิธีในการทำ CRUD โดยภาษา Python เชื่อมต่อกับฐานข้อมูลแบบ API ของ Supabase เอง ซึ่งจะเห็นได้ว่าเราไม่ต้องทำอไรให้เขียนอะไรเยอะเลยเนื่องจาก Supabase ได้ทำ API มาให้เราแล้ว ไม่เพียงแต่จะทำ CRUD Supabase ยังสามารถช่วยในการทำ Authentication API Access ในการ login ผ่านผู้ให้บริการต่างๆเห็นข้อดีไปแล้ว พูดถึงในเรื่องของข้อเสียหากข้อมูลมีความซับซ้อนขึ้นการใช้งานผ่าน API Supabase ค่อนข้างมีความซับซ้อนทำให้เขียนโค้ดยากขึ้นและอาจจะต้องไปตั้งค่าผ่านตัวเว็บไซส์ของ Supabase หลายขั้นตอนทั้งนี้หากข้อมูลมีความซับซ้อนอาจจะเชื่อมต่อฐานข้อมูลของ PostgreSQL ได้โดยตรงไม่ผ่านบริการ API Supabase

อ้างอิง

https://www.mindphp.com/%E0%B8%9A%E0%B8 ... resql.html
https://supabase.com/docs
https://stackademic.com/blog/sqlalchemy-and-supabase-elevating-python-web-development
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 6