[Notion-py] Notion-py로 페이지 자동 생성하기
본문 바로가기
Python

[Notion-py] Notion-py로 페이지 자동 생성하기

by Macgyvering2 2020. 6. 19.

들어가며

노션 api를 이용하여 노션을 DB처럼 사용하여 관리할 수도 있고,

노션 프로그램으로 하기 귀찮은 반복작업들을 코드로 관리하여 사용할 수도 있습니다.

 

이번 포스팅에서는 파이썬 Notion api로 노션 페이지를 작성하는 방법에 대해서 다룹니다.

 

그냥 간단한 페이지 몇개만 생성하는 게 목적이라면 그냥 노션에서 페이지를 생성하면 되지만,

생성할 페이지가 100개 1000개 된다면 엄청난 노동이 될 겁니다.

 

notion-py 패키지를 이용하여 코드로 반복작업을 해결할 수 있습니다.

 

저는 이 코드로 C소스코드를 기능별로 정리하는데 사용했습니다.

 

자세한 사용방법은 아래 페이지를 참조하세요.

https://github.com/jamalex/notion-py/blob/master/README.md

https://github.com/jamalex/notion-py/blob/master/notion/block.py

 

1. 노션 api 설치

Python이 설치된 콘솔 창에서 다음의 커맨드를 입력하여 빠르게 설치할 수 있습니다.

Python은 v3.5 이상이어야 합니다.

pip install notion

 

2. 토큰 발급 받기

1) 크롬 열어서 노션 웹으로 로그인

2) 크롬 개발자 도구 열기(ctrl + shift + I)

3) Application - Cookies - token_v2의 Value값 복사

 

 

3. 페이지 링크 복사하기

노션 페이지에 점 3개 아이콘과 Copy Link를 눌러서 페이지 링크를 복사할 수 있습니다.

 

4. 코드 작성

from datetime import datetime
from notion.client import *
from notion.block import *

# Log-in
_MY_TOKEN = '................................................................'
_PAGE_URL = 'https://www.notion.so/..........................................'

# Main
if __name__ == '__main__':
    client = NotionClient(token_v2=_MY_TOKEN)
    page = client.get_block(_PAGE_URL)

    # Page 생성
    for i in range(10):
        print(page.children.add_new(PageBlock, title=('Code'+str(i+1).zfill(3))))

    # 각 페이지마다 Code block 추가
    for child in page.children:
        child_page = client.get_block(child.id)
        new_child = child_page.children.add_new(CodeBlock)
        new_child.language="C"

발급받은 토큰은 _MY_TOKEN의 문자열 변수에 넣어주고,

복사한 노션 페이지 URL은 _PAGE_URL의 문자열 변수에 넣어주시면 됩니다.

 

위 코드는 페이지를 10개 생성하고

각 페이지마다 C언어의 코드 블록을 하나씩 만들어주는 코드입니다.

 

5. 결과

테스트 페이지 10개에 모두 코드 블럭이 들어갔습니다.

 

이상 노션 api를 이용하여 코드로 페이지를 생성하는 방법에 대해서 다뤘습니다.

'Python' 카테고리의 다른 글

[Notion-py] Notion-py를 이용하여 Copy of 문구 없애기  (0) 2020.06.23

댓글