SlideShare a Scribd company logo
1 of 9
現場で使うDjango雑感
2021-06-30
西本卓也
@nishimotz / @24motz
Django
• Django > Laravel > Rails?
• https://note.com/benao_blog/n/n3875a11b2090
DjangoWebアプリ開発実装ハンドブック
最初
• Windows + WSL2 + VS Code
• ソースからビルドした Python3.9
• プロジェクトを作ってアプリをつくる
• ディレクトリ階層が気持ち悪い
• mysite/mysite どうしてこうなる
• 「現場で使える」シリーズ akiyoko さん: プロジェクト名 config
• startproject config .
$ django-admin startproject --help
usage: django-admin startproject name [directory]
管理サイト
• Web+DB PRESS Vol. 122 の hirokiky さん記事
• ビューを実装する前に管理サイトでブログ記事を作る
• akiyokoさん「現場で使える Django 管理サイトのつくり方」
• 同人誌で152ページ!
• モデルでできることの理解に役立つ
• ちゃんと書くと form や view で書かなくてすむことがある
• verbose_name, verbose_name_plural
• TextChoices : 文字列 Enum の新しい書き方という話
• __str__ ちゃんと書くと便利
• manage.py shell で a = Apple.objects.get(pk=1) みたいに確認
マイグレーション
• 2段階=よいしくみなのでは?
• makemigrations
• モデルファイルの差分を見ているらしい
• "Please select a fix" と言われて考えさせられる
• キャンセル=生成された migrations ファイルを実行せずに削除
• migrate
• 未実行の migrations ファイルを実行してくれるらしい
• ロールバック
• migrage APPNAME zero で初期化
アプリケーション
• たいていの事例
• 作りたいアプリケーション
• accounts アプリケーション
• INSTALLED_APPS に登録する
• django.contrib.admin
• django-cleanup = django_cleanup.apps.CleanupConfig
• アップロードしたファイルの削除に役立つモジュール
• 自分が書くコードも一種のプラグインだと考える
フォーム、ビュー、テンプレート
• クラスベースのビュー
• ListView, DetailView, CreateView, UpdateView, DeleteView
• モデルに verbose_name とかがあると楽できる
• FormView
• モデルとひもづかないフォームが作れる
• submit ボタンを押すと form_valid() を叩いてくれる空のフォーム
• TemplateView
• フォームとひもづかないビューを作る
• LoginRequiredMixin などでアクセス制限
• フォーム: ModelForm とただの Form がある
• widget.attrs で HTML 要素の属性にアクセス
まとめ
• Django 勉強しやすい
• 「自走プログラマー」など知見も多い
• デプロイ方法??
• AWS EC2
• PythonAnywhere
• Heroku
• Render
• Anaconda 意外に需要?
• 今週末 DjangoCongress JP 2021
• https://django.connpass.com/event/214451/

More Related Content

What's hot

Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門
Takayuki Shimizukawa
 
Effective Python 第2版をオンライン読書会で。
Effective Python 第2版をオンライン読書会で。Effective Python 第2版をオンライン読書会で。
Effective Python 第2版をオンライン読書会で。
KyutatsuNishiura
 
Python札幌201406
Python札幌201406Python札幌201406
Python札幌201406
Shinya Okano
 

What's hot (20)

Python & PyConJP 2014 Report
Python & PyConJP 2014 ReportPython & PyConJP 2014 Report
Python & PyConJP 2014 Report
 
The tale of I and python / Python とのはなし
The tale of I and python / Python とのはなしThe tale of I and python / Python とのはなし
The tale of I and python / Python とのはなし
 
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみたRubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
 
本気でPythonで宛名書きした話
本気でPythonで宛名書きした話本気でPythonで宛名書きした話
本気でPythonで宛名書きした話
 
Pyconjp2016 pyftplib
Pyconjp2016 pyftplibPyconjp2016 pyftplib
Pyconjp2016 pyftplib
 
サードパーティパッケージの歩き方
サードパーティパッケージの歩き方サードパーティパッケージの歩き方
サードパーティパッケージの歩き方
 
Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門
 
Effective Python 第2版をオンライン読書会で。
Effective Python 第2版をオンライン読書会で。Effective Python 第2版をオンライン読書会で。
Effective Python 第2版をオンライン読書会で。
 
Python学習奮闘記#07 webapp
Python学習奮闘記#07 webappPython学習奮闘記#07 webapp
Python学習奮闘記#07 webapp
 
S01 t1 tsuji_pylearn_ut_01
S01 t1 tsuji_pylearn_ut_01S01 t1 tsuji_pylearn_ut_01
S01 t1 tsuji_pylearn_ut_01
 
stapy#23 LT
stapy#23 LTstapy#23 LT
stapy#23 LT
 
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境10分でわかるPythonの開発環境
10分でわかるPythonの開発環境
 
新人教育と(Javaと)Python
新人教育と(Javaと)Python新人教育と(Javaと)Python
新人教育と(Javaと)Python
 
エキスパートPythonプログラミング改訂3版の読みどころ
エキスパートPythonプログラミング改訂3版の読みどころエキスパートPythonプログラミング改訂3版の読みどころ
エキスパートPythonプログラミング改訂3版の読みどころ
 
Python入門 コードリーディング - PyConJP2016
Python入門 コードリーディング - PyConJP2016Python入門 コードリーディング - PyConJP2016
Python入門 コードリーディング - PyConJP2016
 
たった一ファイルの python スクリプトから始めるOSS開発入門 / PyCon JP 2016
たった一ファイルの python スクリプトから始めるOSS開発入門 / PyCon JP 2016たった一ファイルの python スクリプトから始めるOSS開発入門 / PyCon JP 2016
たった一ファイルの python スクリプトから始めるOSS開発入門 / PyCon JP 2016
 
S14 t0 introduction
S14 t0 introductionS14 t0 introduction
S14 t0 introduction
 
勉強会 Cvml python基礎
勉強会 Cvml python基礎勉強会 Cvml python基礎
勉強会 Cvml python基礎
 
PyLadies Tokyo - 初心者向けPython体験ワークショップ開催の裏側
PyLadies Tokyo - 初心者向けPython体験ワークショップ開催の裏側PyLadies Tokyo - 初心者向けPython体験ワークショップ開催の裏側
PyLadies Tokyo - 初心者向けPython体験ワークショップ開催の裏側
 
Python札幌201406
Python札幌201406Python札幌201406
Python札幌201406
 

Similar to 210630 python

Type scriptmemo
Type scriptmemoType scriptmemo
Type scriptmemo
ytanno
 
How to django at first
How to django at firstHow to django at first
How to django at first
Maito Kuwahara
 
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Kazuyuki Mori
 

Similar to 210630 python (20)

Djangoのススメ
DjangoのススメDjangoのススメ
Djangoのススメ
 
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けようDjango ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
 
恋するJenkins
恋するJenkins恋するJenkins
恋するJenkins
 
Nodeにしましょう
NodeにしましょうNodeにしましょう
Nodeにしましょう
 
Type scriptmemo
Type scriptmemoType scriptmemo
Type scriptmemo
 
SnapDishの事例
SnapDishの事例SnapDishの事例
SnapDishの事例
 
How to django at first
How to django at firstHow to django at first
How to django at first
 
Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 
(IDEユーザのための) ClojureのEmacs開発環境について
(IDEユーザのための) ClojureのEmacs開発環境について(IDEユーザのための) ClojureのEmacs開発環境について
(IDEユーザのための) ClojureのEmacs開発環境について
 
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
 
jp IT Django project jp.pptx
jp IT Django project jp.pptxjp IT Django project jp.pptx
jp IT Django project jp.pptx
 
Androidの新ビルドシステム
Androidの新ビルドシステムAndroidの新ビルドシステム
Androidの新ビルドシステム
 
"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach
 
Django で始める PyCharm 入門
Django で始める PyCharm 入門Django で始める PyCharm 入門
Django で始める PyCharm 入門
 
ブラウザだけで学ぶWebアプリ開発
ブラウザだけで学ぶWebアプリ開発 ブラウザだけで学ぶWebアプリ開発
ブラウザだけで学ぶWebアプリ開発
 
Djangoのチュートリアル
DjangoのチュートリアルDjangoのチュートリアル
Djangoのチュートリアル
 
使えるDjango1.4
使えるDjango1.4使えるDjango1.4
使えるDjango1.4
 
Blazor WebAssembly と Windows Forms でのロジック共有例
Blazor WebAssembly と Windows Forms でのロジック共有例Blazor WebAssembly と Windows Forms でのロジック共有例
Blazor WebAssembly と Windows Forms でのロジック共有例
 
Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門
 

More from Takuya Nishimoto

More from Takuya Nishimoto (20)

221217 SwiftはPythonに似ている
221217 SwiftはPythonに似ている221217 SwiftはPythonに似ている
221217 SwiftはPythonに似ている
 
220427-pydata 統計・データ分析 特集
220427-pydata 統計・データ分析 特集220427-pydata 統計・データ分析 特集
220427-pydata 統計・データ分析 特集
 
220126 python-datalake-spark
220126 python-datalake-spark220126 python-datalake-spark
220126 python-datalake-spark
 
211020 すごい広島 with OSH 2021.10
211020 すごい広島 with OSH 2021.10211020 すごい広島 with OSH 2021.10
211020 すごい広島 with OSH 2021.10
 
210917 オープンセミナー@広島のこれまでとこれから
210917 オープンセミナー@広島のこれまでとこれから210917 オープンセミナー@広島のこれまでとこれから
210917 オープンセミナー@広島のこれまでとこれから
 
210911 これから始める電子工作とMicroPython
210911 これから始める電子工作とMicroPython210911 これから始める電子工作とMicroPython
210911 これから始める電子工作とMicroPython
 
210728 mpy
210728 mpy210728 mpy
210728 mpy
 
210526 Power Automate Desktop Python
210526 Power Automate Desktop Python210526 Power Automate Desktop Python
210526 Power Automate Desktop Python
 
210428 python
210428 python210428 python
210428 python
 
200918 hannari-python
200918 hannari-python200918 hannari-python
200918 hannari-python
 
200429 python
200429 python200429 python
200429 python
 
200325 flask
200325 flask200325 flask
200325 flask
 
200208 osh-nishimoto-v2
200208 osh-nishimoto-v2200208 osh-nishimoto-v2
200208 osh-nishimoto-v2
 
191208 python-kansai-nishimoto
191208 python-kansai-nishimoto191208 python-kansai-nishimoto
191208 python-kansai-nishimoto
 
191101 nvda-sightworld-nishimoto
191101 nvda-sightworld-nishimoto191101 nvda-sightworld-nishimoto
191101 nvda-sightworld-nishimoto
 
191114 iotlt-nishimoto
191114 iotlt-nishimoto191114 iotlt-nishimoto
191114 iotlt-nishimoto
 
191030 anna-with-python
191030 anna-with-python191030 anna-with-python
191030 anna-with-python
 
190916 nishimoto-nvda-pyconjp
190916 nishimoto-nvda-pyconjp190916 nishimoto-nvda-pyconjp
190916 nishimoto-nvda-pyconjp
 
190925 python-windows
190925 python-windows190925 python-windows
190925 python-windows
 
190731 chalice
190731 chalice190731 chalice
190731 chalice
 

Recently uploaded

Recently uploaded (7)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

210630 python

  • 2. Django • Django > Laravel > Rails? • https://note.com/benao_blog/n/n3875a11b2090
  • 4. 最初 • Windows + WSL2 + VS Code • ソースからビルドした Python3.9 • プロジェクトを作ってアプリをつくる • ディレクトリ階層が気持ち悪い • mysite/mysite どうしてこうなる • 「現場で使える」シリーズ akiyoko さん: プロジェクト名 config • startproject config . $ django-admin startproject --help usage: django-admin startproject name [directory]
  • 5. 管理サイト • Web+DB PRESS Vol. 122 の hirokiky さん記事 • ビューを実装する前に管理サイトでブログ記事を作る • akiyokoさん「現場で使える Django 管理サイトのつくり方」 • 同人誌で152ページ! • モデルでできることの理解に役立つ • ちゃんと書くと form や view で書かなくてすむことがある • verbose_name, verbose_name_plural • TextChoices : 文字列 Enum の新しい書き方という話 • __str__ ちゃんと書くと便利 • manage.py shell で a = Apple.objects.get(pk=1) みたいに確認
  • 6. マイグレーション • 2段階=よいしくみなのでは? • makemigrations • モデルファイルの差分を見ているらしい • "Please select a fix" と言われて考えさせられる • キャンセル=生成された migrations ファイルを実行せずに削除 • migrate • 未実行の migrations ファイルを実行してくれるらしい • ロールバック • migrage APPNAME zero で初期化
  • 7. アプリケーション • たいていの事例 • 作りたいアプリケーション • accounts アプリケーション • INSTALLED_APPS に登録する • django.contrib.admin • django-cleanup = django_cleanup.apps.CleanupConfig • アップロードしたファイルの削除に役立つモジュール • 自分が書くコードも一種のプラグインだと考える
  • 8. フォーム、ビュー、テンプレート • クラスベースのビュー • ListView, DetailView, CreateView, UpdateView, DeleteView • モデルに verbose_name とかがあると楽できる • FormView • モデルとひもづかないフォームが作れる • submit ボタンを押すと form_valid() を叩いてくれる空のフォーム • TemplateView • フォームとひもづかないビューを作る • LoginRequiredMixin などでアクセス制限 • フォーム: ModelForm とただの Form がある • widget.attrs で HTML 要素の属性にアクセス
  • 9. まとめ • Django 勉強しやすい • 「自走プログラマー」など知見も多い • デプロイ方法?? • AWS EC2 • PythonAnywhere • Heroku • Render • Anaconda 意外に需要? • 今週末 DjangoCongress JP 2021 • https://django.connpass.com/event/214451/