All Projects → icoxfog417 → pykintone

icoxfog417 / pykintone

Licence: Apache-2.0 license
Python library to access kintone

Programming Languages

python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to pykintone

kintone
kintone REST API client for Ruby
Stars: ✭ 41 (+95.24%)
Mutual labels:  kintone
cli-kintone
No description or website provided.
Stars: ✭ 44 (+109.52%)
Mutual labels:  kintone
kintoneUtility
No description or website provided.
Stars: ✭ 24 (+14.29%)
Mutual labels:  kintone
goqoo
Goqoo on kintone is a kintone-application framework that includes modern JS Libraries.
Stars: ✭ 18 (-14.29%)
Mutual labels:  kintone
js-sdk
A monorepo for Kintone development tools 🔧
Stars: ✭ 88 (+319.05%)
Mutual labels:  kintone

pykintone

Python library to access kintone.

import pykintone

r = pykintone.app("kintone domain", "app id", "api token").select("updated_time > NOW()")
if r.ok:
    records = r.records

Quick Start

pip install pykintone

Feature

Record and model mapping

import pykintone
from pykintone import model


class Person(model.kintoneModel):

    def __init__(self):
        super(Person, self).__init__()
        self.last_name = ""
        self.first_name = ""


app = pykintone.load("path_to_account_setting").app()
persons = app.select().models(Person)

someone = persons[0]
someone.last_name = "xxx"
app.update(someone)

Of course you can use every basic operation.

  • create
  • read
  • update
  • delete

File Field

(You have to prepare the kintone Application that has my_files field as below.)

import pykintone
from pykintone import model
import pykintone.structure_field as sf


class MyFolder(model.kintoneModel):

    def __init__(self):
        super(MyFolder, self).__init__()
        self.my_files = [sf.File()]


app = pykintone.load("path_to_account_setting").app()
my_files = ["note.txt", "image.png"]

folder = MyFolder()
folder.my_files = [sf.File.upload(f, app) for f in my_files]

result = app.create(folder)
record = app.get(result.record_id).model(MyFolder)
files = [f.download(app) for f in record.my_files]

Record Comment

import pykintone
from pykintone import model


class Report(model.kintoneModel):

    def __init__(self, title="", detail=""):
        super(Report, self).__init__()
        self.title = title
        self.detail = detail


app = pykintone.load("path_to_account_setting").app()

# create record
report = Report(title="about today", detail="I used pykintone.")
created_id = app.create(report).record_id

# create comment
app.comment(created_id).create("Good Job!")

Application Administration

import pykintone
from pykintone.application_settings.administrator import Administrator
import pykintone.application_settings.form_field as ff
from pykintone.application_settings.view import View

kintone = pykintone.load("path_to_account_setting")

with kintone.administration().transaction() as admin:
    # create application
    created = admin.create_application("my_application")

    # create form
    f1 = ff.BaseFormField.create("SINGLE_LINE_TEXT", "title", "Title")
    f2 = ff.BaseFormField.create("MULTI_LINE_TEXT", "description", "Desc")
    admin.form().add([f1, f2])

    # create view
    view = View.create("mylist", ["title", "description"])
    admin.view().update(view)

User API

import pykintone

export_api = pykintone.load("path_to_account_setting").user_api().for_exporting
users = export_api.get_users().users

Export

  • users
  • user's organizations and titles
  • user's groups

Installation Detail

You can download from pypi.

pip install pykintone

pykintone works on Python3, and it depends on below libraries.

You can write account setting file as below (yaml format).

domain: xxx
login:
    id: user_id
    password: password
basic:
    id: basic_id
    password: password
apps:
    test:
        id: 1

Of course you can use api_token.

domain: xxx
apps:
    test:
        id: 1
        token: xxxx

Test

To run tests, please follow the following steps:

  • Create a test application on your kintone by using tests/pykintoneTest.zip template.
    1. Open "kintone Administration" page from the setting icon.
    2. Open "App Template" page.
    3. Click "Import" button and select tests/pykintoneTest.zip file.
    4. Create an application using this template.
  • Create account.yaml file at the root directory of pykintone.
    domain: <your-domain without .cybozu.com>
    login:
        id: <user name>
        password: <user password>
    apps:
        testApp:
            id: <id of the application>
  • Run the tests.
    cd /path/to/pykintone
    python3 -m unittest
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].