Submit Search
Upload
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
•
15 likes
•
6,686 views
Kei IWASAKI
Follow
みんなの Python 勉強会#33 の発表資料です https://startpython.connpass.com/event/73168/
Read less
Read more
Technology
Report
Share
Report
Share
1 of 50
Download now
Download to read offline
Recommended
たった一ファイルの python スクリプトから始めるOSS開発入門 / PyCon JP 2016
たった一ファイルの python スクリプトから始めるOSS開発入門 / PyCon JP 2016
Kei IWASAKI
OSSと私
OSSと私
Hattori Hideo
Python入門 コードリーディング - PyConJP2016
Python入門 コードリーディング - PyConJP2016
Shinya Okano
Pyconjp2016 pyftplib
Pyconjp2016 pyftplib
Shinya Okano
Pynyumon03 LT
Pynyumon03 LT
drillan
PyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッション
Tetsuya Morimoto
Python札幌 2012/06/17
Python札幌 2012/06/17
Shinya Okano
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
Yusuke Kon
Recommended
たった一ファイルの python スクリプトから始めるOSS開発入門 / PyCon JP 2016
たった一ファイルの python スクリプトから始めるOSS開発入門 / PyCon JP 2016
Kei IWASAKI
OSSと私
OSSと私
Hattori Hideo
Python入門 コードリーディング - PyConJP2016
Python入門 コードリーディング - PyConJP2016
Shinya Okano
Pyconjp2016 pyftplib
Pyconjp2016 pyftplib
Shinya Okano
Pynyumon03 LT
Pynyumon03 LT
drillan
PyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッション
Tetsuya Morimoto
Python札幌 2012/06/17
Python札幌 2012/06/17
Shinya Okano
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
Yusuke Kon
Python エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjp
Takeshi Komiya
次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発
shoma h
サードパーティパッケージの歩き方
サードパーティパッケージの歩き方
Takesxi Sximada
本気でPythonで宛名書きした話
本気でPythonで宛名書きした話
Satoshi Yamada
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境
Hisao Soyama
Python学習奮闘記#07 webapp
Python学習奮闘記#07 webapp
Takeshi Akutsu
勉強会 Cvml python基礎
勉強会 Cvml python基礎
真哉 杉野
Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門
Takayuki Shimizukawa
Stapy#17LT
Stapy#17LT
drillan
stapy#23 LT
stapy#23 LT
NaoY-2501
Bottle使ってPython学習一緒にはじめませんか?
Bottle使ってPython学習一緒にはじめませんか?
Tatsuya Shinozuka
Pythonによるwebアプリケーション入門 - Django編-
Pythonによるwebアプリケーション入門 - Django編-
Hironori Sekine
Python界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクト
Tetsuya Morimoto
Python & PyConJP 2014 Report
Python & PyConJP 2014 Report
gree_tech
Pyladies tokyo 2nd anniversary LT
Pyladies tokyo 2nd anniversary LT
drillan
私の好きなPython構文 vol.2 #nds46
私の好きなPython構文 vol.2 #nds46
civicpg
Javascriptを書きたくないヒ トのためのPythonScript
Javascriptを書きたくないヒ トのためのPythonScript
Kazufumi Ohkawa
S01 t1 tsuji_pylearn_ut_01
S01 t1 tsuji_pylearn_ut_01
Takeshi Akutsu
WindowsでPython
WindowsでPython
drillan
LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45
civic Sasaki
Hannari python#27
Hannari python#27
hiroya akita
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
You&I
More Related Content
What's hot
Python エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjp
Takeshi Komiya
次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発
shoma h
サードパーティパッケージの歩き方
サードパーティパッケージの歩き方
Takesxi Sximada
本気でPythonで宛名書きした話
本気でPythonで宛名書きした話
Satoshi Yamada
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境
Hisao Soyama
Python学習奮闘記#07 webapp
Python学習奮闘記#07 webapp
Takeshi Akutsu
勉強会 Cvml python基礎
勉強会 Cvml python基礎
真哉 杉野
Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門
Takayuki Shimizukawa
Stapy#17LT
Stapy#17LT
drillan
stapy#23 LT
stapy#23 LT
NaoY-2501
Bottle使ってPython学習一緒にはじめませんか?
Bottle使ってPython学習一緒にはじめませんか?
Tatsuya Shinozuka
Pythonによるwebアプリケーション入門 - Django編-
Pythonによるwebアプリケーション入門 - Django編-
Hironori Sekine
Python界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクト
Tetsuya Morimoto
Python & PyConJP 2014 Report
Python & PyConJP 2014 Report
gree_tech
Pyladies tokyo 2nd anniversary LT
Pyladies tokyo 2nd anniversary LT
drillan
私の好きなPython構文 vol.2 #nds46
私の好きなPython構文 vol.2 #nds46
civicpg
Javascriptを書きたくないヒ トのためのPythonScript
Javascriptを書きたくないヒ トのためのPythonScript
Kazufumi Ohkawa
S01 t1 tsuji_pylearn_ut_01
S01 t1 tsuji_pylearn_ut_01
Takeshi Akutsu
WindowsでPython
WindowsでPython
drillan
LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45
civic Sasaki
What's hot
(20)
Python エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjp
次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発
サードパーティパッケージの歩き方
サードパーティパッケージの歩き方
本気でPythonで宛名書きした話
本気でPythonで宛名書きした話
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境
Python学習奮闘記#07 webapp
Python学習奮闘記#07 webapp
勉強会 Cvml python基礎
勉強会 Cvml python基礎
Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門
Stapy#17LT
Stapy#17LT
stapy#23 LT
stapy#23 LT
Bottle使ってPython学習一緒にはじめませんか?
Bottle使ってPython学習一緒にはじめませんか?
Pythonによるwebアプリケーション入門 - Django編-
Pythonによるwebアプリケーション入門 - Django編-
Python界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクト
Python & PyConJP 2014 Report
Python & PyConJP 2014 Report
Pyladies tokyo 2nd anniversary LT
Pyladies tokyo 2nd anniversary LT
私の好きなPython構文 vol.2 #nds46
私の好きなPython構文 vol.2 #nds46
Javascriptを書きたくないヒ トのためのPythonScript
Javascriptを書きたくないヒ トのためのPythonScript
S01 t1 tsuji_pylearn_ut_01
S01 t1 tsuji_pylearn_ut_01
WindowsでPython
WindowsでPython
LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45
Similar to 入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
Hannari python#27
Hannari python#27
hiroya akita
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
You&I
Python × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack bot
dcubeio
Pythonで作る自作デバッガLT資料
Pythonで作る自作デバッガLT資料
Yuya Masumura
深層学習ライブラリのプログラミングモデル
深層学習ライブラリのプログラミングモデル
Yuta Kashino
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
Takanori Suzuki
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Takayuki Shimizukawa
20120915 Pythonは本当にBlenderの役に立っているか?
20120915 Pythonは本当にBlenderの役に立っているか?
Tetsuo Mitsuda
ゼロから学ぶPython勉強会
ゼロから学ぶPython勉強会
sekikazu
scikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアル
敦志 金谷
Clojureの世界と実際のWeb開発
Clojureの世界と実際のWeb開発
Tsutomu Yano
LibPGEN 1st Step Guide
LibPGEN 1st Step Guide
slankdev
Introduction of kabepy
Introduction of kabepy
Kenjiro Kosaka
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Takeshi Komiya
Apilecture for 2014/02/22 at shannonlab
Apilecture for 2014/02/22 at shannonlab
Yutaka Kobayshi
2013_kougi6
2013_kougi6
ytanno
APIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjp
Takeshi Komiya
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する
Takuya Nishimoto
CPythonを読もう
CPythonを読もう
Akira Nonaka
Rdkitの紹介
Rdkitの紹介
Takayuki Serizawa
Similar to 入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
(20)
Hannari python#27
Hannari python#27
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
Python × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack bot
Pythonで作る自作デバッガLT資料
Pythonで作る自作デバッガLT資料
深層学習ライブラリのプログラミングモデル
深層学習ライブラリのプログラミングモデル
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
20120915 Pythonは本当にBlenderの役に立っているか?
20120915 Pythonは本当にBlenderの役に立っているか?
ゼロから学ぶPython勉強会
ゼロから学ぶPython勉強会
scikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアル
Clojureの世界と実際のWeb開発
Clojureの世界と実際のWeb開発
LibPGEN 1st Step Guide
LibPGEN 1st Step Guide
Introduction of kabepy
Introduction of kabepy
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Apilecture for 2014/02/22 at shannonlab
Apilecture for 2014/02/22 at shannonlab
2013_kougi6
2013_kougi6
APIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjp
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する
CPythonを読もう
CPythonを読もう
Rdkitの紹介
Rdkitの紹介
More from Kei IWASAKI
コロナ渦とキャリアの話 / my carrier and covid-19
コロナ渦とキャリアの話 / my carrier and covid-19
Kei IWASAKI
Collaboration hack with slackbot - PyCon HK 2018 - 2018.11.24
Collaboration hack with slackbot - PyCon HK 2018 - 2018.11.24
Kei IWASAKI
Elasticbeanstalk で Ansible を使っている話
Elasticbeanstalk で Ansible を使っている話
Kei IWASAKI
Pelican の紹介 / World Plone Day 2017 Tokyo
Pelican の紹介 / World Plone Day 2017 Tokyo
Kei IWASAKI
3分でサーバオペレーションコマンドを作る技術
3分でサーバオペレーションコマンドを作る技術
Kei IWASAKI
Cli mini Hack!#1 ~Terminalとの親睦を深めよう~
Cli mini Hack!#1 ~Terminalとの親睦を深めよう~
Kei IWASAKI
Vagrant+virtualboxを使ってみよう
Vagrant+virtualboxを使ってみよう
Kei IWASAKI
障害発生時に抑えておきたい基礎知識
障害発生時に抑えておきたい基礎知識
Kei IWASAKI
監視のススメ
監視のススメ
Kei IWASAKI
More from Kei IWASAKI
(9)
コロナ渦とキャリアの話 / my carrier and covid-19
コロナ渦とキャリアの話 / my carrier and covid-19
Collaboration hack with slackbot - PyCon HK 2018 - 2018.11.24
Collaboration hack with slackbot - PyCon HK 2018 - 2018.11.24
Elasticbeanstalk で Ansible を使っている話
Elasticbeanstalk で Ansible を使っている話
Pelican の紹介 / World Plone Day 2017 Tokyo
Pelican の紹介 / World Plone Day 2017 Tokyo
3分でサーバオペレーションコマンドを作る技術
3分でサーバオペレーションコマンドを作る技術
Cli mini Hack!#1 ~Terminalとの親睦を深めよう~
Cli mini Hack!#1 ~Terminalとの親睦を深めよう~
Vagrant+virtualboxを使ってみよう
Vagrant+virtualboxを使ってみよう
障害発生時に抑えておきたい基礎知識
障害発生時に抑えておきたい基礎知識
監視のススメ
監視のススメ
Recently uploaded
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Recently uploaded
(11)
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
1.
入門書を読みおわったら何しよう? ~Python と WebAPI
の使い方から学ぶ次の一歩~ 2018.03.07 みんなのPython勉強会#33 Kei IWASAKI at SQUEEZE Inc.
2.
お前誰よ Kei IWASAKI Twitter: @laugh_k,
Github: @laughk 株式会社SQUEEZE所属 スラスラわかるPython(翔泳社) という本の共著者の一人 最近は Django, AngularJS でWeb開発をやりながらもインフラ周りや それ以外の改善を模索したりしてます。 2
3.
CM Python 入門者向けの本 スラスラわかる Python
発売中! おかげさまで1月に2刷が出ました! 3
4.
今日話すこと 1. 入門書を読み終わった後の次の課題の見つけ方 2. 最低限の知識で自分のためのコードの書き始め方 ※
今回は Python の入門書ということが前提です! 4
5.
早速ですが 入門書っていいですよね!
6.
入門書のいいところ 初学者のでも学ぶべき内容を体系的に学習することができる 特にプログラミングそのものが初心者の人にとっては心強い存在 6
7.
じゃあ その入門書おわったらどうしよう?
8.
道は色々ある 1. 入門書の内容を自分でカスタムしてみる 2. 次のレベルの書籍を手にとって見る 3.
自分にとって実践的なコードを書いてみる など 8
9.
入門書の内容を自分でカスタムしてみる 書籍の中で登場したコードを自分なりにアレンジしてみる方法 スクレイピングなら対象のサイトを変更してみる 簡単なゲームプログラムならルールを追加してみる など 9
10.
次のレベルの書籍を手にとってみる 入門者じゃないひと対象の本を読んで見る方法 例えば 入門本 - 次のレベルの本 スラスラわかるPython ➔ Pythonエンジニアファーストブック 10
11.
道は色々ある 1. 入門書の内容を自分でカスタムしてみる 2. 次のレベルの書籍を手にとって見る 3.
自分にとって実践的なコードを書いてみる など 11
12.
自分にとって実践的なコードを書いてみる
13.
今日紹介するのは 「自分にとって実践的なコードを書いてみる」 というアプローチ
14.
「自分にとって実践的なコードを書いてみる」? 例えばこんなこと 微妙にコピペが面倒なCSVファイルをつくるスクリプト 気になる人の1日の Tweet 情報をとってくるスクリプト 自分がアサインされているチケット一覧をSlack通知する 今日がゴミを出す日かどうか教えてくれるbotをつくる 14
15.
最初はこじつけでいいから 自分が楽をしたいことを見つけるのがいい 「それ〇〇でできるよ?」は一旦置いておく 「それ結構難しいのでは?」もあまり気にしない 業務・プライベート問わず、よく使うWebサービスがあるとネタに しやすいかも 15
16.
今日考えてみる例 "Github の Pull
Request 一覧を Slack で通知してみる"
17.
Githubの Pull Request
一覧をSlackで通知してみる 「ブラウザでGithubのPullRequest一覧を見るのが面倒」 という悩みを解消するための課題 17
18.
やりたいことは思いついた どうやってコードを書いていこう?
19.
A. やりたいことの登場人物と その扱い方を整理しよう
20.
やりたいことの登場人物を整理しよう 今回の例だと以下の登場人物がいる Github Slack これらを Python でどう使うのかを確認する 20
21.
プログラミングでWebサービスを扱う方法
22.
プログラミングでWebサービスを扱う方法 基本的には以下の2つのどちらか Web API* を使う スクレイピングする *
すごく雑に言えば「ネットワーク越しに使える関数のようなもの」 22
23.
まずは Web API
が使えないかを確認する API と言ってもいろいろ。簡単に使えるものもある Webサービスは API が提供されていることも多い 今回のパターンも API が使える GitHub API v3 | GitHub Developer Guide Slack Web API | Slack 23
24.
じゃあスクレイピングは? スクレイピングはAPIと比べて思い通りの情報を取得するのが大変 「Webサイトを扱うならばスクレイピングだな!」の前にAPIがある かは調べよう 場合によってはここで諦めて別の課題を探すのも一つの選択 スクレイピングはAPIが提供されていないときの最終手段 24
25.
登場人物たちの情報 APIが提供されていることはわかった Github GitHub API v3
| GitHub Developer Guide ⇐これ Slack Slack Web API | Slack ⇐これ 25
26.
対象のWebサービスの APIを使えばよさそうだとわかった!
27.
ところで API ってどうやって使うの...?
28.
A. ここで サードパーティーライブラリの出番
29.
PyPI のライブラリを活用しよう 雑に言えば pip
install ... で追加できるライブラリのこと PyPI - the Python Package Index に公開されているサードパーティー のライブラリを簡単に利用できる 29
30.
PyPI のライブラリを活用しよう API が提供されているサービスの場合、PyPIに専用ライブラリが公 開されていことが多い 便利に扱うことができるライブラリがあるので活用しよう PyGithub
1.37 : Python Package Index slackapi/python-slackclient: Slack Developer Kit for Python slackpy 2.2.2 : Python Package Index 30
31.
ところでこのライブラリって(ry
32.
A. ライブラリのドキュメントを読みましょう
33.
A. ライブラリのドキュメントを読みましょう ... とはいえ隅々まで目を通す必要はないです
34.
ライブラリを雑に動かそう コードを書く前にインタラクティブシェルでざっと動作を確認しておく tokenなどの必要な情報もこのタイミングで取得しておく >>> from github
import Github >>> github_token = '********************************' >>> gh = Github(github_token) >>> repo = gh.get_repo('laughk/py3-django-tutorial') >>> repos = repo.get_pulls(state='close') >>> for r in repos: ... print(r) ... PullRequest(title="[wip] 2016-05-24の分", number=7) PullRequest(title="2016-05-17やった分", number=6) # -- -- snip -- -- 34
35.
ライブラリを雑に動かそう コードを書く前にインタラクティブシェルでざっと動作を確認しておく 必要なtoken情報などもこのタイミングで取得しておく >>> import slackpy >>>
WEBHOOK = 'https://hooks.slack.com/services/******/***********' >>> slack = slackpy.SlackLogger(WEBHOOK) >>> slack.info('hogehoge') <Response [200]> >>> 35
36.
更に細かな部分は ライブラリのドキュメントを読みましょう
37.
登場人物たちの情報 APIが提供されていることはわかった。APIの使い方もわかってきた Github GitHub API v3
| GitHub Developer Guide PyGithub 1.37 : Python Package Index ⇐これ Slack Slack Web API | Slack slackpy 2.2.2 : Python Package Index ⇐これ 37
38.
そろそろ処理の流れを大まかに整理しよう 今回は大体以下のような感じ 1. Github から
PR の情報を取得する (PyGithubを使ってやる) 2. 取得した PR の情報を処理しやすく形成する (普通にコードを書く) 3. 形成したデータを Slack へ投げる (Slackpyを使う) 38
39.
ここまで来たら Try&Error でひたすらコードを書く
40.
Try&Error でひたすらコードを書く インタラクティブシェルで小さく試行錯誤しながら徐々に広げてい くとやりやすい こまめに print()
して動作を確認していくのもお手軽でオススメ 40
41.
とにかく書いてみるを大切に 慣れないうちはまずコードを書くことに集中してOK コードがきれいか汚いかをあまり気にしない テストコードとかも無理に考えない 41
42.
サンプルコード
43.
import slackpy from github
import Github GITHUB_TOKEN = '********************' SLACK_WEBHOOK = 'https://hooks.slack.com/services/******/*******/********' GITHUB_REPOSITORY = 'laughk/py3-django-tutorial' gh = Github(GITHUB_TOKEN) repository = gh.get_repo(GITHUB_REPOSITORY) pull_request_info = [] for pr in repository.get_pulls(state='all'): pull_request_info.append({'title': pr.title, 'url': pr.url}) slack_messages = "" for info in pull_request_info: slack_messages += '{0} {1}n'.format(info["title"], info["url"]) slack = slackpy.SlackLogger(SLACK_WEBHOOK) slack.info(slack_messages)
44.
# Github から
Pull Request 情報を取得 gh = Github(GITHUB_TOKEN) repository = gh.get_repo(GITHUB_REPOSITORY) pull_request_info = [] for pr in repository.get_pulls(state='all'): pull_request_info.append({'title': pr.title, 'url': pr.url}) # Github から取得した情報の形成 slack_messages = "" for info in pull_request_info: slack_messages += '{0} {1}n'.format(info["title"], info["url"]) # Slack へ通知 slack = slackpy.SlackLogger(SLACK_WEBHOOK) slack.info(slack_messages)
45.
保存して実行してみるまでの流れ github-pr-list-to-slack.py に保存して以下を実行してみると以下の通り ## PyPI
ライブラリをインストール $ pip install slackpy PyGithub ## サンプルコードの内容を書く (エディタはお好みで) $ nvim github-pr-list-to-slack.py ## 実行 $ python github-pr-list-to-slack.py 45
46.
こんな感じで通知される! 46
47.
まとめ
48.
自分にとって実践的なコードを書いてみるコツ 普段自分がやっていることをネタにするとイメージしやすい コードを書く前に登場人物を整理してプログラムにやらせることの イメージを明確にしよう Python は PyPI
に便利なライブラリが多く存在する。無理せず頼ろ う! コードを書き始めたら細かいことを気にせず思いのままコードを書 いてみよう! 48
49.
さいごに 入門書の基礎知識でもできることは結構ある 自分にとって身近なところから課題を見つけて行動してみると覚え たことの「使い方」を実体験として理解できる 次の書籍も良いけど、少ない知識で実際に手を動かすのもオススメ 49
50.
Let's Enjoy Next
Step!
Download now