SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
Djangoではじめる
PyCharm入門
PyCon Kyushu 2018
Kashun Yoshida 2018-06-30
Who am I? / お前誰よ?
● @kashew_nuts
● BeProud Inc.
● Software Developer
● Python, Vim, PyCharm
● Django Girls Tutorial
● Django Documentation
● vimdoc-ja
What's BeProud?
● 東京に本拠を置くPythonエンジニアリング会社
● Webサービス:
○ Connpass: エンジニアをつなぐ IT勉強会支援プラットフォーム
○ PyQ: Python学習用のオンラインプラットフォーム
● フルリモートワーキング (5days/week)
書籍が出版されました
● Pythonプロフェッショナルプロ
グラミング 第3版
● 6/12発売
● Git/GitHub対応
● CIがJenkins→CircleCIに
● 機械学習プロジェクト対応
発表の動機/目的
● 「PyCharmどうですか?」と漠然と聞かれることがあった。
● 実際仕事でPyCharmを使っているが, PyCharmの使い方, 利
用してるライブラリー, 周辺環境など色々なトピックがあった。
● その中でPyCharmを使うと便利な点をまとめてみたいなと
思った次第です。
対象
● PyCharmを使ってみたいが, どうやって使っていったらいいか
わからない人
● 普段からPyCharmを使っているが, もっと使いこなしたい人
● 他に使い慣れているツールがあるが, PyCharmもおさえてお
きたい人
今日の目標
● PyCharm完全にマスターした
前提とする環境
● サンプルコードはすべてPython3.6, Django2.0
● 利用バージョン: PyCharm Professional 2018.1
● 題材: Django Girls Tutorial
● リポジトリ:
https://github.com/kashewnuts/djangogirlstutorial
目次
● PyCharm概要
● PyCharmがサポートしていること
● 実際にPyCharmを使っていての感想
● PyCharmが向いていないこと
● 基本機能
● Djangoサポート
● フロントエンドサポート
● データベースサポート
● リモート開発
● テスト実行
● PyCharmを使うとき注意すべきこと
引用: https://www.jetbrains.com/pycharm/
What's PyCharm ?
● https://www.jetbrains.com/pycharm/
● チェコのJetBrains社が作成するPython統合開発環境
○ ~Python IDE for Professional Developers~
● 無償のCommunity版と有償のProfessional版がある
○ Community版は機能制限あり
○ サポートしてる機能の違いは PyCharm Editions Comparison に まと
められてる
インストール要件
● ハードウェア条件
○ 最小4 GB RAM, 8 GB RAMを推奨
○ 1.5 GBのハードディスク空き容量+キャッシュ用に少なくと
も1 GB
○ 1024x768の最小画面解像度
● ソフトウェア要件
○ OS: Windows, macOS, Linuxに対応
○ Python: 2.4以降, Jython, PyPy, IronPython
PyCharmができること
● Intelligent Python Assistance
● Webアプリケーション開発
○ (Django, Flask, Pyramid, JavaScript, ...)
● 科学技術系ツール (Jupyter, Numpy, matplotlib, ...)
● デバッグ, テスト, プロファイリング
● VCS連携 (Git, Mercurial, SVN)
● デプロイ, リモート開発 (Vagrant, Docker)
● データベースツール (MySQL, PostgreSQL, Oracle, AWS, …)
PyCharmに対しての感想
● 他のツールを探しにいく必要がなくなった
● PythonもDjangoもよく知っているIDE
○ Python本体、Djangoのurls, views, models, templates, etc…
● コード補完と解析、インクリメンタルサーチが賢い
● Python事情への追従が速い: Python3.7, Django2.0
● Webアプリケーション開発をするにあたり必要なものが揃っていて必要なときに使
いやすい (Database&SQL, VCS, Remote Development)
● デバッガーが優秀:
○ Django runserverしながらCeleryのデバッグができたり , pytestをステップ実行できたり , JavaScript
とPythonの両方でデバッグできたりして至極便利
● Gitのブランチ操作がサクサク動くし, コンフリクトの解消もしやすい
● 困ったときはSearchEverywhereやFind in Actionで調べれば大抵のことは解決
PyCharmが向いていないこと
● プラグインの作成(Javaで書く必要がある)
● 単一ファイルの編集するエディタ代わりの使い方
DEMO
PyCharmの基本機能
● Pythonのシンタックスハイライト, コード補完, 定義ジャンプ対
応
● Python2/3対応
● virtualenvサポート
● GUIのパッケージマネージャー
● リファクタリング, デバッガ, コードインスペクション
● VCS連携
● Terminalサポート
PyCharmのDjangoサポート
● 専用のプロジェクトタイプ
● manage.pyユーティリティの実行
● Django用に強化されたコード補完, 定義ジャンプ, デバッグの
連携
○ UrlConf, View, Model, Templates, Forms
● Model用の依存関係図作成
フロントエンド
● 同社のWebStrom (Front-end用IDE) 相当を同梱
● HTML, CSS, JavaScriptのコード補完, 定義ジャンプ, コード
解析
● JavaScriptのFramework対応
○ Angular, React, Vue.js, and more
● CSS Framework対応
○ SASS, SCSS, Less, and more.
データベース
● 同社のDataGrip (DataBase & SQL用ツール) 相当を同梱
● DataBase & SQLサポート
○ SQLの作成と実行, コード補完, リファクタリング
● SQLAlchemy対応
● CSV/JSON/XML出力対応
● 対応するDataBase
○ Amazon Aurora, Amazon Redshift, MariaDB, MySQL, Oracle,
PostgreSQL, SQL Server, SQLite3, and more.
リモート開発
● VagrantやDocker, Docker Composeサポート
○ 起動, 終了, リロード
○ Remote Interpretersの指定, Remote Debug
● SSH Remote
○ Vagrantfileを使ったSSH
○ WSLの実行やデバッグ
○ SSHやSSLを使用したリモート接続
● コードデプロイ (SFTP)
テスト実行
● unittest, pytest, nose, doctest, toxをサポート
● テスト対象を指定して実行できる
○ 失敗したテスト
○ 指定したクラス配下のテスト
○ 指定した関数のテスト
● Coverageの表示
フルスタックWebアプリケーション開発
引用: https://www.jetbrains.com/pycharm/features/web_development.html
PyCharmを使うとき注意すべきこと
● トリッキーな使い方をするとハマる
● 予期せぬ出来事にであったときは何が問題なのか切り分ける
○ PyCharm側の問題?関連するツールの問題?(Python, MySQL,
Vagrant, Docker, SSH...)
● PyCharmのバグを踏んだときはがんばり過ぎない
○ なんか今日は機嫌悪いな?と思ったらInvalidate Caches/Restart
○ Stop&Startで直ることも。再インストールは最終手段。
○ 不具合は報告すると比較的すぐに対応してくれるので, Issueトラッカー
に登録or見つけたらVote
リファレンス
● PyCharmの使い方 - 公式ヘルプ | PyCharm (ja / en)
● Pythonエンジニア ファーストブック
● IntelliJ IDEAハンズオン 基本操作からプロジェクト管理までマ
スター
● Android Studio本格活用バイブル
ご清聴ありがとうございました

Mais conteúdo relacionado

Mais procurados

Bottle使ってPython学習一緒にはじめませんか?
Bottle使ってPython学習一緒にはじめませんか?Bottle使ってPython学習一緒にはじめませんか?
Bottle使ってPython学習一緒にはじめませんか?Tatsuya Shinozuka
 
Gitはじめの一歩
Gitはじめの一歩Gitはじめの一歩
Gitはじめの一歩Ayana Yokota
 
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境10分でわかるPythonの開発環境
10分でわかるPythonの開発環境Hisao Soyama
 
Pyconjp2016 pyftplib
Pyconjp2016 pyftplibPyconjp2016 pyftplib
Pyconjp2016 pyftplibShinya Okano
 
ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理H2O Space. Co., Ltd.
 
Windowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようWindowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようKenji NAKAGAKI
 
Python入門 コードリーディング - PyConJP2016
Python入門 コードリーディング - PyConJP2016Python入門 コードリーディング - PyConJP2016
Python入門 コードリーディング - PyConJP2016Shinya Okano
 
スクレイピングとPython
スクレイピングとPythonスクレイピングとPython
スクレイピングとPythonHironori Sekine
 
はじめてのGit #gitkyoto
はじめてのGit #gitkyotoはじめてのGit #gitkyoto
はじめてのGit #gitkyotoHisateru Tanaka
 
PyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッションPyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッションTetsuya Morimoto
 
20160128 jjug Nightセミナー_Git実践入門
20160128 jjug Nightセミナー_Git実践入門20160128 jjug Nightセミナー_Git実践入門
20160128 jjug Nightセミナー_Git実践入門Mizuki Ugajin
 
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみたRubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみたYusuke Kon
 
SourceTreeで始めよう! Gitへの乗り換え指南
SourceTreeで始めよう! Gitへの乗り換え指南SourceTreeで始めよう! Gitへの乗り換え指南
SourceTreeで始めよう! Gitへの乗り換え指南Kouji Matsui
 
たった一ファイルの python スクリプトから始めるOSS開発入門 / PyCon JP 2016
たった一ファイルの python スクリプトから始めるOSS開発入門 / PyCon JP 2016たった一ファイルの python スクリプトから始めるOSS開発入門 / PyCon JP 2016
たった一ファイルの python スクリプトから始めるOSS開発入門 / PyCon JP 2016Kei IWASAKI
 
Python札幌 2012/06/17
Python札幌 2012/06/17Python札幌 2012/06/17
Python札幌 2012/06/17Shinya Okano
 
勉強会 Cvml python基礎
勉強会 Cvml python基礎勉強会 Cvml python基礎
勉強会 Cvml python基礎真哉 杉野
 
20120915 Pythonは本当にBlenderの役に立っているか?
20120915 Pythonは本当にBlenderの役に立っているか?20120915 Pythonは本当にBlenderの役に立っているか?
20120915 Pythonは本当にBlenderの役に立っているか?Tetsuo Mitsuda
 
サードパーティパッケージの歩き方
サードパーティパッケージの歩き方サードパーティパッケージの歩き方
サードパーティパッケージの歩き方Takesxi Sximada
 
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programingKei IWASAKI
 

Mais procurados (20)

Bottle使ってPython学習一緒にはじめませんか?
Bottle使ってPython学習一緒にはじめませんか?Bottle使ってPython学習一緒にはじめませんか?
Bottle使ってPython学習一緒にはじめませんか?
 
Gitはじめの一歩
Gitはじめの一歩Gitはじめの一歩
Gitはじめの一歩
 
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境10分でわかるPythonの開発環境
10分でわかるPythonの開発環境
 
Pyconjp2016 pyftplib
Pyconjp2016 pyftplibPyconjp2016 pyftplib
Pyconjp2016 pyftplib
 
ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理
 
Windowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようWindowsにpythonをインストールしてみよう
Windowsにpythonをインストールしてみよう
 
Python入門 コードリーディング - PyConJP2016
Python入門 コードリーディング - PyConJP2016Python入門 コードリーディング - PyConJP2016
Python入門 コードリーディング - PyConJP2016
 
スクレイピングとPython
スクレイピングとPythonスクレイピングとPython
スクレイピングとPython
 
はじめてのGit #gitkyoto
はじめてのGit #gitkyotoはじめてのGit #gitkyoto
はじめてのGit #gitkyoto
 
PyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッションPyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッション
 
20160128 jjug Nightセミナー_Git実践入門
20160128 jjug Nightセミナー_Git実践入門20160128 jjug Nightセミナー_Git実践入門
20160128 jjug Nightセミナー_Git実践入門
 
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみたRubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
 
SourceTreeで始めよう! Gitへの乗り換え指南
SourceTreeで始めよう! Gitへの乗り換え指南SourceTreeで始めよう! Gitへの乗り換え指南
SourceTreeで始めよう! Gitへの乗り換え指南
 
たった一ファイルの python スクリプトから始めるOSS開発入門 / PyCon JP 2016
たった一ファイルの python スクリプトから始めるOSS開発入門 / PyCon JP 2016たった一ファイルの python スクリプトから始めるOSS開発入門 / PyCon JP 2016
たった一ファイルの python スクリプトから始めるOSS開発入門 / PyCon JP 2016
 
210630 python
210630 python210630 python
210630 python
 
Python札幌 2012/06/17
Python札幌 2012/06/17Python札幌 2012/06/17
Python札幌 2012/06/17
 
勉強会 Cvml python基礎
勉強会 Cvml python基礎勉強会 Cvml python基礎
勉強会 Cvml python基礎
 
20120915 Pythonは本当にBlenderの役に立っているか?
20120915 Pythonは本当にBlenderの役に立っているか?20120915 Pythonは本当にBlenderの役に立っているか?
20120915 Pythonは本当にBlenderの役に立っているか?
 
サードパーティパッケージの歩き方
サードパーティパッケージの歩き方サードパーティパッケージの歩き方
サードパーティパッケージの歩き方
 
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
 

Semelhante a Django で始める PyCharm 入門

211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解するTakuya Nishimoto
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識Katsuhiro Morishita
 
Pythonによるwebアプリケーション入門 - Django編-
Pythonによるwebアプリケーション入門 - Django編- Pythonによるwebアプリケーション入門 - Django編-
Pythonによるwebアプリケーション入門 - Django編- Hironori Sekine
 
Redash pythonで業務分析
Redash pythonで業務分析Redash pythonで業務分析
Redash pythonで業務分析創史 花村
 
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築You&I
 
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けようDjango ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けようTakayuki Shimizukawa
 
Python × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack botPython × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack botdcubeio
 
LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45civic Sasaki
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版Katsuhiro Morishita
 
Python札幌201406
Python札幌201406Python札幌201406
Python札幌201406Shinya Okano
 
初学者のためのプロンプトエンジニアリング実践.pptx
初学者のためのプロンプトエンジニアリング実践.pptx初学者のためのプロンプトエンジニアリング実践.pptx
初学者のためのプロンプトエンジニアリング実践.pptxAkifumi Niida
 
やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013DQNEO
 
Python界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクトPython界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクトTetsuya Morimoto
 
[Okta x Jamf合同新年会] Okta Workflowsによるノーコード業務改善 〜Jamf APIを使ってMac端末情報を自動収集してみよう〜
[Okta x Jamf合同新年会] Okta Workflowsによるノーコード業務改善 〜Jamf APIを使ってMac端末情報を自動収集してみよう〜[Okta x Jamf合同新年会] Okta Workflowsによるノーコード業務改善 〜Jamf APIを使ってMac端末情報を自動収集してみよう〜
[Okta x Jamf合同新年会] Okta Workflowsによるノーコード業務改善 〜Jamf APIを使ってMac端末情報を自動収集してみよう〜Ryo Sasaki
 
Pythonとgit hubとベンチャー企業の上手な付き合い方
Pythonとgit hubとベンチャー企業の上手な付き合い方Pythonとgit hubとベンチャー企業の上手な付き合い方
Pythonとgit hubとベンチャー企業の上手な付き合い方Takahiro Fujiwara
 
Python & PyConJP 2014 Report
Python & PyConJP 2014 ReportPython & PyConJP 2014 Report
Python & PyConJP 2014 Reportgree_tech
 
PyPy 紹介
PyPy 紹介PyPy 紹介
PyPy 紹介shoma h
 

Semelhante a Django で始める PyCharm 入門 (20)

211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する
 
Introduction Pycon2010
Introduction Pycon2010Introduction Pycon2010
Introduction Pycon2010
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
 
Pythonによるwebアプリケーション入門 - Django編-
Pythonによるwebアプリケーション入門 - Django編- Pythonによるwebアプリケーション入門 - Django編-
Pythonによるwebアプリケーション入門 - Django編-
 
Visasq
VisasqVisasq
Visasq
 
Redash pythonで業務分析
Redash pythonで業務分析Redash pythonで業務分析
Redash pythonで業務分析
 
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
 
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けようDjango ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
 
Python × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack botPython × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack bot
 
LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
 
Python札幌201406
Python札幌201406Python札幌201406
Python札幌201406
 
初学者のためのプロンプトエンジニアリング実践.pptx
初学者のためのプロンプトエンジニアリング実践.pptx初学者のためのプロンプトエンジニアリング実践.pptx
初学者のためのプロンプトエンジニアリング実践.pptx
 
やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013
 
Python界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクトPython界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクト
 
SnapDishの事例
SnapDishの事例SnapDishの事例
SnapDishの事例
 
[Okta x Jamf合同新年会] Okta Workflowsによるノーコード業務改善 〜Jamf APIを使ってMac端末情報を自動収集してみよう〜
[Okta x Jamf合同新年会] Okta Workflowsによるノーコード業務改善 〜Jamf APIを使ってMac端末情報を自動収集してみよう〜[Okta x Jamf合同新年会] Okta Workflowsによるノーコード業務改善 〜Jamf APIを使ってMac端末情報を自動収集してみよう〜
[Okta x Jamf合同新年会] Okta Workflowsによるノーコード業務改善 〜Jamf APIを使ってMac端末情報を自動収集してみよう〜
 
Pythonとgit hubとベンチャー企業の上手な付き合い方
Pythonとgit hubとベンチャー企業の上手な付き合い方Pythonとgit hubとベンチャー企業の上手な付き合い方
Pythonとgit hubとベンチャー企業の上手な付き合い方
 
Python & PyConJP 2014 Report
Python & PyConJP 2014 ReportPython & PyConJP 2014 Report
Python & PyConJP 2014 Report
 
PyPy 紹介
PyPy 紹介PyPy 紹介
PyPy 紹介
 

Django で始める PyCharm 入門