PYQT TUTORIAL
Hướng dẫn sử dụng LangChain bằng Python Cách tự viết Context Manager trong Python Cách background của hình ảnh trong Python Cách làm việc với Notion API trong Python Cách đo Time chạy trong Python Cách sao chép danh sách (List) trong Python Cách kiểm tra List trống trong Python Cách sắp xếp dictionary theo giá trị trong Python PyQt là gì? Tạo một chương trình "Hello World". Tín hiệu và Khe (Signals & Slots) trong PyQt Cách sử dụng widget PyQt QLabel Cách sử dụng widget QPushButton của PyQt Cách sử dụng widget QLineEdit trong PyQt Cách sử dụng QVBoxLayout trong PyQt Cách sử dụng QGridLayout trong PyQt Cách sử dụng QFormLayout trong PyQt Cách sử dụng lớp QCheckBox trong PyQt Cách sử dụng lớp PyQt QRadioButton Sử dụng PyQt QComboBox để tạo Widget Combobox Cách sử dụng widget PyQt QSpinBox để tạo một spin box Cách tạo một widget nhập ngày sử dụng lớp PyQt QDateEdit Cách tạo một widget nhập giờ sử dụng lớp PyQt QTimeEdit Cách tạo một widget nhập ngày và giờ sử dụng PyQt QDateTimeEdit Cách sử dụng lớp PyQt QSlider để tạo một widget thanh trượt (slider). Cách dùng PyQt QWidget để làm container chứa các widget khác. Cách dùng lớp PyQt QTabWidget để tạo một widget dạng tab Cách dùng lớp PyQt QGroupBox để tạo một khung nhóm với tiêu đề Cách dùng lớp PyQt QTextEdit để tạo một widget cho phép chỉnh sửa Cách sử dụng lớp PyQt QProgressBar để tạo một widget progress bar Cách sử dụng lớp PyQt QMessageBox để tạo một hộp thoại Cách dùng lớp PyQt QInputDialog để tạo một hộp thoại nhập liệu Cách dùng lớp PyQt QFileDialog để tạo hộp thoại chọn file Cách sử dụng lớp QMainWindow của PyQt để tạo cửa sổ Cách sử dụng lớp PyQt QMenu để tạo menu Cách dùng lớp PyQt QToolBar để tạo các widget toolbar Cách dùng lớp QDockWidget của PyQt để tạo một widget Cách dùng lớp QStatusBar trong PyQt để tạo thanh status bar Cách sử dụng lớp QListWidget trong Python Cách sử dụng lớp QTableWidget để tạo một bảng Cách sử dụng lớp QTreeWidget của PyQt Cách sử dụng Qt Designer để thiết kế UX/UI trong PyQt. Cách sử dụng QThread trong PyQt Cách tạo các lớp QThreadPool đa luồng trong PyQt Cách hoạt động của Model/View trong PyQt Cách sử dụng Qt Style Sheets (QSS) trong PyQt. Chuyển đổi PyQt sang EXE trong PyQt
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.

Cách làm việc với Notion API trong Python

Trong thời đại số hóa, tự động hóa trở thành chìa khóa để tối ưu hóa công việc, và Notion – một nền tảng quản lý công việc linh hoạt – đã cung cấp API mạnh mẽ để người dùng có thể quản lý dữ liệu của mình một cách hiệu quả. Bài viết này sẽ hướng dẫn bạn cách làm việc với Notion API trong Python, giúp bạn tự động hóa các thao tác như tạo, đọc, cập nhật, và xóa dữ liệu trong cơ sở dữ liệu của Notion. Từ việc thiết lập API đến viết các hàm Python để thao tác dữ liệu, bạn sẽ thấy rõ cách Notion API có thể hỗ trợ tối đa cho công việc của mình.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Bài viết này sẽ hướng dẫn cách:

  • Thiết lập API của Notion
  • Thiết lập mã Python
  • Tạo các mục trong cơ sở dữ liệu
  • Truy vấn và đọc dữ liệu từ cơ sở dữ liệu
  • Cập nhật và xóa các mục trong cơ sở dữ liệu

Thiết lập Notion API và cơ sở dữ liệu Python

Đầu tiên, chúng ta cần tạo một cơ sở dữ liệu toàn trang trên bảng Notion của mình. Ví dụ trong bài này sẽ sử dụng một cơ sở dữ liệu lưu trữ các bài đăng blog của mình. Cơ sở dữ liệu sẽ gồm các trường: URL, Title (tiêu đề), và Published (ngày xuất bản) để minh họa cách thao tác với các loại dữ liệu văn bản và ngày.

Tiếp theo, làm theo hướng dẫn chính thức để tạo một tích hợp Notion (Integration). Qua các bước này bạn sẽ:

Bài viết này được đăng tại [free tuts .net]

  • Tạo tích hợp và lấy Token.
  • Chia sẻ cơ sở dữ liệu với tích hợp của bạn.
  • Lưu ID của cơ sở dữ liệu để dùng trong mã Python.

Khi đã hoàn tất thiết lập, bạn sẽ sẵn sàng tự động hóa việc tạo, đọc, cập nhật và xóa dữ liệu trong cơ sở dữ liệu của mình.

Thiết lập mã Python

Để làm việc với API, chúng ta sẽ dùng thư viện requests. Cài đặt thư viện bằng lệnh:

pip install requests

Sau đó, xác định token của bạn, ID của cơ sở dữ liệu, và các headers cần thiết:

import requests

NOTION_TOKEN = "YOUR_INTEGRATION_TOKEN"
DATABASE_ID = "YOUR_DATABASE_ID"

headers = {
    "Authorization": "Bearer " + NOTION_TOKEN,
    "Content-Type": "application/json",
    "Notion-Version": "2022-06-28",
}

Tạo mục trong cơ sở dữ liệu Notion Python

Để tạo một mục mới, ta gửi yêu cầu POST đến API:

def create_page(data: dict):
    create_url = "https://api.notion.com/v1/pages"

    payload = {"parent": {"database_id": DATABASE_ID}, "properties": data}

    res = requests.post(create_url, headers=headers, json=payload)
    return res

Dữ liệu cần tuân theo các định dạng của từng trường trong bảng cơ sở dữ liệu. Ví dụ: với các cột URL, Title, và Published, bạn có thể tạo dữ liệu như sau:

from datetime import datetime, timezone

title = "Tiêu đề mẫu"
description = "Mô tả mẫu"
published_date = datetime.now().astimezone(timezone.utc).isoformat()
data = {
    "URL": {"title": [{"text": {"content": description}}]},
    "Title": {"rich_text": [{"text": {"content": title}}]},
    "Published": {"date": {"start": published_date, "end": None}}
}

create_page(data)

Truy vấn cơ sở dữ liệu và đọc các mục

Để truy vấn và đọc dữ liệu từ cơ sở dữ liệu, bạn có thể dùng hàm sau:

def get_pages(num_pages=None):
    url = f"https://api.notion.com/v1/databases/{DATABASE_ID}/query"
    get_all = num_pages is None
    page_size = 100 if get_all else num_pages

    payload = {"page_size": page_size}
    response = requests.post(url, json=payload, headers=headers)

    data = response.json()
    results = data["results"]

    while data["has_more"] and get_all:
        payload = {"page_size": page_size, "start_cursor": data["next_cursor"]}
        response = requests.post(url, json=payload, headers=headers)
        data = response.json()
        results.extend(data["results"])

    return results

Lấy tất cả các trang và duyệt qua từng mục:

pages = get_pages()

for page in pages:
    page_id = page["id"]
    props = page["properties"]
    url = props["URL"]["title"][0]["text"]["content"]
    title = props["Title"]["rich_text"][0]["text"]["content"]
    published = props["Published"]["date"]["start"]

Cập nhật mục trong cơ sở dữ liệu Notion

Để cập nhật một mục, chúng ta gửi yêu cầu PATCH:

def update_page(page_id: str, data: dict):
    url = f"https://api.notion.com/v1/pages/{page_id}"
    payload = {"properties": data}
    res = requests.patch(url, json=payload, headers=headers)
    return res

Ví dụ, cập nhật trường Published:

page_id = "ID của trang"
new_date = datetime(2023, 1, 15).astimezone(timezone.utc).isoformat()
update_data = {"Published": {"date": {"start": new_date, "end": None}}}
update_page(page_id, update_data)

Xóa mục trong cơ sở dữ liệu Notion

Để xóa một mục, bạn sử dụng lại endpoint cho việc cập nhật nhưng đặt archived thành True:

def delete_page(page_id: str):
    url = f"https://api.notion.com/v1/pages/{page_id}"
    payload = {"archived": True}
    res = requests.patch(url, json=payload, headers=headers)
    return res

Kết bài

Qua bài viết này, mình đã tìm hiểu cách sử dụng Notion API trong Python để tự động hóa các thao tác trên cơ sở dữ liệu như tạo, đọc, cập nhật, và xóa dữ liệu. Với sự hỗ trợ của Notion API, bạn có thể xây dựng các ứng dụng linh hoạt và tiết kiệm thời gian trong việc quản lý thông tin. Hy vọng hướng dẫn này sẽ giúp bạn dễ dàng tích hợp và khai thác Notion API vào công việc hàng ngày, mở ra nhiều cơ hội nâng cao hiệu suất làm việc.

Cùng chuyên mục:

Thư viện functools trong Python

Thư viện functools trong Python

Làm việc với cấu trúc Dữ liệu Stack trong Python

Làm việc với cấu trúc Dữ liệu Stack trong Python

Sử dụng pprint trong Python

Sử dụng pprint trong Python

Tìm hiểu về Enum trong Python

Tìm hiểu về Enum trong Python

Mô-đun Calendar trong Python

Mô-đun Calendar trong Python

Tìm hiểu về Deque trong Python

Tìm hiểu về Deque trong Python

Đổi tên File trong Python

Đổi tên File trong Python

File Organizing trong Python

File Organizing trong Python

Tìm hiểu Mô-đun statistics Trong Python

Tìm hiểu Mô-đun statistics Trong Python

Cách giới hạn float values trong Python

Cách giới hạn float values trong Python

Mô-đun base64 trong Python

Mô-đun base64 trong Python

Lập trình Socket trong Python

Lập trình Socket trong Python

Tìm hiểu về các phép toán Groupby trong Pandas

Tìm hiểu về các phép toán Groupby trong Pandas

Cách áp dụng ngưỡng hình ảnh trong Python với NumPy

Cách áp dụng ngưỡng hình ảnh trong Python với NumPy

10 tip One Liner bạn cần biết trong Python

10 tip One Liner bạn cần biết trong Python

Cách gỡ lỗi ứng dụng Python trong Docker Container bằng VS Code

Cách gỡ lỗi ứng dụng Python trong Docker Container bằng VS Code

Cách đảo ngược Chuỗi String trong Python

Cách đảo ngược Chuỗi String trong Python

6 Tip viết vòng lặp For hiệu quả hơn trong Python

6 Tip viết vòng lặp For hiệu quả hơn trong Python

Các nền tảng lưu trữ tốt nhất cho ứng dụng và script Python

Các nền tảng lưu trữ tốt nhất cho ứng dụng và script Python

Cách tạo hằng số trong Python

Cách tạo hằng số trong Python

Top