- หน้าตาเว็บไซต์เมื่อเข้ามาครั้งแรก กด start your project ที่มุมขวาบนได้เลย
- เมื่อเข้ามาแล้วก็จะเห็นหน้า Dashboard ของเรา กด New Project ได้เลยครับ
- กรอกรายละเอียด และกด Create new project ได้เเลยครับ
- หลังจากนั้นเว็บก็จะกำลัง setting up project เราก็จะเห็น Key ต่างๆด้านขวา ส่วนที่เราจะใช้ก็คือตัวแรกเลย
- เมื่อทำการ set up แล้วไปที่ฝั่งด้ายซ้ายคลิ๊กที่ Table Editor
- เราก็จะมาสร้าง Table สำหรับเก็บข้อมูลกันก่อนนะครับในที่นี้ผมขอสร้าง table ชื่อ “task” กด Create a new table ได้เลย
- โดยเรากรอกข้อมูล หรือเพิ่ม columns ตั้งค่าต่างๆได้ตามในเลยในที่นี้ขอเอาตามนี้ก่อนนะครับเสร็จแล้วกด save ได้เลย
- จะได้ table ว่างเปล่าแบบนี้ หลังจากนี้เราจะลองใช้ API ของ Supabase กัน
- ไปที่แถบด้านซ้ายแล้วเลือก Project settings จากนั้นเลือก API
- เมื่อมาถึงหน้านี้แล้วเราจะได้ใช้ url และ key จาก 1 และ 2 เพื่อเชื่อมต่อกับฐานข้อมูล
โค้ด: เลือกทั้งหมด
pip install supabase
โค้ด: เลือกทั้งหมด
from supabase import create_client
# ใส่ข้อมูลที่ได้รับจาก Supabase
url = "https://your-project-url.supabase.co"
key = "your-public-api-key"
# สร้างการเชื่อมต่อ
supabase = create_client(url, key)
การทำ CRUD ด้วย Supabase
1. Create (สร้างข้อมูลใหม่)
ในการสร้างข้อมูลใหม่ สามารถใช้คำสั่ง insert เพื่อเพิ่มข้อมูลเข้าไปในตารางที่กำหนด
โค้ด: เลือกทั้งหมด
data = {"title": "Buy groceries"}
response = supabase.table("task").insert(data).execute()
print(response.data)
ผลลัพธ์:
โค้ด: เลือกทั้งหมด
[
{
"id": 1,
"title": "Buy groceries"
}
]
2. Read (อ่านข้อมูล)
การดึงข้อมูลรายการทั้งหมดในตาราง "task":
โค้ด: เลือกทั้งหมด
response = supabase.table("task").select("*").execute()
print(response.data)
ผลลัพธ์:
โค้ด: เลือกทั้งหมด
[
{
"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)
ผลลัพธ์:
โค้ด: เลือกทั้งหมด
[
{
"id": 1,
"title": "Buy groceries and cook dinner"
}
]
4. Delete (ลบข้อมูล)
สมมติว่ต้องการลบงานที่มี id เท่ากับ 1:
โค้ด: เลือกทั้งหมด
response = supabase.table("task").delete().eq("id", 1).execute()
print(response.data)
ผลลัพธ์
โค้ด: เลือกทั้งหมด
[]
นี่ก็เป็นอีกหนึ่งวิธีในการทำ 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