SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Downloaden Sie, um offline zu lesen
Django 1.9
OMEGA(@equal_001)
お前誰よ
・OMEGA (@equal_001)
・株式会社ビープラウド
・Python, Djangoの開発メイン
・バイク乗りプログラマです
・バイクはいいぞ〜!
・東京モータショーで試乗したMT-25が意外とよかった
今日はDjangoの話をします
その前に
いやぁ、PHP7が出ましたね!
Twitterとか記事サイトみてると、
結構盛り上がってたみたいじゃないの
ところで
みなさん知ってましたか?
Django 1.9 がリリースされました!/
リリース日が2日しか違わないのに
フレームワークと言語は違うのはわかるが、僕は悲しい
まぁ、気をとりなおして
今日は
Django 1.9で
どんな機能が追加されたか
紹介していくよ!
まずはどんなものが追加されたか
チェックチェック!
メジャー機能の説明だけで
許してください
死んでしまいます
主な追加機能(目次)
● performing actions after a transaction commit
● password validation.
● Permission mixins for class-based views.
● running tests in parallel.
・Python 3.5 が使える
Performing actions
after a transaction commit
Performing actions after a transaction commit
● トランザクションが正常にコミットされた後に実行するアクションのフックが追加され
た
● rollbackされた場合はdo_something()は呼び出されない
Password validation
Password validation
● パスワードのいろんなバリデーション機能がDjango側でできるようになった
○ defalutは []、設定しなければ全てのパスワードは受理される
Password validation:UserAttributeSimilarityValidator
● Userの入力したパスワードが、username, first_name, last_name, email と類似
しているかどうかを検証
● 内部実装
○ passwordとその他のvalueをlower()で全て小文字へ
○ SequenceMatcherで文字列を比較、quick_ratio()でシーケンスの同一性を測る
○ 類似性が見られた場合、エラーメッセージを返す
Password validation:CommonPasswordValidator
● よくあるパスワードのリスト.txt を作っておいて、それらと一致したらエラー出す
● 内部実装
○ common-passwords.txt.gzを解凍・file openして、リストに保持
○ 入力されたパスワード .lower()が「よくあるパスワードリスト」のどれかと一致したらエラー送出
○ "This password is too common."とかでる
Password validation:MinimumLengthValidator、NumericPasswordValidator
● パスワードの最小の長さを設定できる
● 地味に嬉しい
○ 今まで、if len(password) < 9: とかやってた
● formsに書くべきなのでは?とか思った
○ Validationするformsとの役割分担、切り分けとか
● 数値のみでパスワードが構成されているかどうかをチェック
Permission mixins
for class-based views
Permission mixins for class-based views
● Django-bracesにあるアクセス制御関連と似た機能を追加したよという話
○ Django-braces・・・DjangoのClassBasedViewで使えるMixin集
● 今まではdecoratorを作ったり、Django-bracesを入れてやっていたことがDjango
側でできるようになった
○ requestを受け取ってViewに処理を渡す前に、アクセス権限のチェックとか
● 今回追加されたMixin
○ AccessMixin
○ LoginRequiredMixin
○ PermissionRequiredMixin
○ UserPassesTestMixin
Permission mixins for class-based views:LoginRequiredMixin
● LoginRequiredMixin
○ 非認証ユーザをログインページ または 403ページ へリダイレクトする
● Userのis_activeはチェックしないんだって。。
Permission mixins for class-based views:PermissionRequiredMixin
● PermissionRequiredMixin
○ ビューにアクセスするユーザが指定の権限を持っているかチェックする
○ 権限のないユーザの取り扱いをまとめてカスタマイズできる
Running tests in parallel
Running tests in parallel
● 別のプロセスで平行してテストを実行できるよという話
○ プロセス数の調整もできる
● 実行方法
○ python manage.py test --pararell=5
■ DJANGO_TEST_PROCESSESでプロセス数を設定可能
● 注意点。やっぱあるよね
○ pdb仕込むときは並列化を無効にしないと pdb落ちる
○ テスト失敗時は例外のトレースバックが表示されないこともある(デバッグするの大変になるかも)
○ 各プロセスのテストで独自 DBを使用するので、同じリソースにアクセスしないように気をつけろよ
Running tests in parallel
● サポート対象外 あっ...。
○ OSがWindows
○ データベースがOracle
まとめ
まとめ
● トランザクションが正常にコミットされた後に実行するアクションのフックが一機能と
して追加された
● パスワードのメジャーなバリデーションをSettingsに設定しておけるようになった
● Django-bracesにあるビューのアクセス制御関連機能がDjangoの機能として使え
るようになった
● パラレルテストを実行できるようになった
● Djangoで正式にPython3.5が使えるようになった
Have a nice Django life!
OMEGA(@equal_001)

Weitere ähnliche Inhalte

Was ist angesagt?

Python3 プログラミング勉強会
Python3 プログラミング勉強会Python3 プログラミング勉強会
Python3 プログラミング勉強会
Tetsuya Morimoto
 
Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門
Takayuki Shimizukawa
 

Was ist angesagt? (20)

GAE/GoでLINE Messaging API を使う
GAE/GoでLINE Messaging API を使うGAE/GoでLINE Messaging API を使う
GAE/GoでLINE Messaging API を使う
 
サードパーティパッケージの歩き方
サードパーティパッケージの歩き方サードパーティパッケージの歩き方
サードパーティパッケージの歩き方
 
Javascriptを書きたくないヒ トのためのPythonScript
Javascriptを書きたくないヒ トのためのPythonScriptJavascriptを書きたくないヒ トのためのPythonScript
Javascriptを書きたくないヒ トのためのPythonScript
 
20120915 Pythonは本当にBlenderの役に立っているか?
20120915 Pythonは本当にBlenderの役に立っているか?20120915 Pythonは本当にBlenderの役に立っているか?
20120915 Pythonは本当にBlenderの役に立っているか?
 
Bottle使ってPython学習一緒にはじめませんか?
Bottle使ってPython学習一緒にはじめませんか?Bottle使ってPython学習一緒にはじめませんか?
Bottle使ってPython学習一緒にはじめませんか?
 
久しぶりのPythonでgoogleのアレを制御してみた
久しぶりのPythonでgoogleのアレを制御してみた久しぶりのPythonでgoogleのアレを制御してみた
久しぶりのPythonでgoogleのアレを制御してみた
 
Stapy#17LT
Stapy#17LTStapy#17LT
Stapy#17LT
 
勉強会 Cvml python基礎
勉強会 Cvml python基礎勉強会 Cvml python基礎
勉強会 Cvml python基礎
 
PyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッションPyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッション
 
DartPad+CodePenで、Flutterを体験してみよう
DartPad+CodePenで、Flutterを体験してみようDartPad+CodePenで、Flutterを体験してみよう
DartPad+CodePenで、Flutterを体験してみよう
 
Go初心者向けハンズオン コマンドラインツールを作ろう
Go初心者向けハンズオン コマンドラインツールを作ろうGo初心者向けハンズオン コマンドラインツールを作ろう
Go初心者向けハンズオン コマンドラインツールを作ろう
 
Pynyumon03 LT
Pynyumon03 LTPynyumon03 LT
Pynyumon03 LT
 
Python3 プログラミング勉強会
Python3 プログラミング勉強会Python3 プログラミング勉強会
Python3 プログラミング勉強会
 
Python入門 コードリーディング - PyConJP2016
Python入門 コードリーディング - PyConJP2016Python入門 コードリーディング - PyConJP2016
Python入門 コードリーディング - PyConJP2016
 
Go modules
Go modulesGo modules
Go modules
 
Pyladies tokyo 2nd anniversary LT
Pyladies tokyo 2nd anniversary LTPyladies tokyo 2nd anniversary LT
Pyladies tokyo 2nd anniversary LT
 
Goだけでモバイルアプリを作ろう
Goだけでモバイルアプリを作ろうGoだけでモバイルアプリを作ろう
Goだけでモバイルアプリを作ろう
 
Gitはじめの一歩
Gitはじめの一歩Gitはじめの一歩
Gitはじめの一歩
 
Django pgroonga
Django pgroongaDjango pgroonga
Django pgroonga
 
Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門
 

Andere mochten auch

Djangoアプリの実践的設計手法
Djangoアプリの実践的設計手法Djangoアプリの実践的設計手法
Djangoアプリの実践的設計手法
Ian Lewis
 
mixiアプリ『the Actress』運用にあたっての課題へのチャレンジ
mixiアプリ『the Actress』運用にあたっての課題へのチャレンジmixiアプリ『the Actress』運用にあたっての課題へのチャレンジ
mixiアプリ『the Actress』運用にあたっての課題へのチャレンジ
Shinya Okano
 
Python札幌 2012/06/17
Python札幌 2012/06/17Python札幌 2012/06/17
Python札幌 2012/06/17
Shinya Okano
 

Andere mochten auch (20)

Pythonによるwebアプリケーション入門 - Django編-
Pythonによるwebアプリケーション入門 - Django編- Pythonによるwebアプリケーション入門 - Django編-
Pythonによるwebアプリケーション入門 - Django編-
 
ちょっと真面目にPython&Django・基礎編
ちょっと真面目にPython&Django・基礎編ちょっと真面目にPython&Django・基礎編
ちょっと真面目にPython&Django・基礎編
 
Djangoアプリの実践的設計手法
Djangoアプリの実践的設計手法Djangoアプリの実践的設計手法
Djangoアプリの実践的設計手法
 
Djangoのススメ
DjangoのススメDjangoのススメ
Djangoのススメ
 
でも、機械学習って お難しいんでしょ?
でも、機械学習って お難しいんでしょ?でも、機械学習って お難しいんでしょ?
でも、機械学習って お難しいんでしょ?
 
闇の魔術に対する防衛術
闇の魔術に対する防衛術闇の魔術に対する防衛術
闇の魔術に対する防衛術
 
Pythonで始めるWebアプリケーション開発
Pythonで始めるWebアプリケーション開発Pythonで始めるWebアプリケーション開発
Pythonで始めるWebアプリケーション開発
 
Djangoフレームワークの紹介 OSC2015北海道
Djangoフレームワークの紹介 OSC2015北海道Djangoフレームワークの紹介 OSC2015北海道
Djangoフレームワークの紹介 OSC2015北海道
 
Webフレームワークパネル(Django) at PyConJP 2012
Webフレームワークパネル(Django) at PyConJP 2012Webフレームワークパネル(Django) at PyConJP 2012
Webフレームワークパネル(Django) at PyConJP 2012
 
Django learning Part2
Django learning Part2Django learning Part2
Django learning Part2
 
Django/Celeyを用いたデータ分析Webアプリケーションにおける非同期処理の設計と実装
Django/Celeyを用いたデータ分析Webアプリケーションにおける非同期処理の設計と実装Django/Celeyを用いたデータ分析Webアプリケーションにおける非同期処理の設計と実装
Django/Celeyを用いたデータ分析Webアプリケーションにおける非同期処理の設計と実装
 
Apple に依存する僕の生存戦略
Apple に依存する僕の生存戦略Apple に依存する僕の生存戦略
Apple に依存する僕の生存戦略
 
スタートアップのくせになまいきだ
スタートアップのくせになまいきだスタートアップのくせになまいきだ
スタートアップのくせになまいきだ
 
軽量のススメ
軽量のススメ軽量のススメ
軽量のススメ
 
mixiアプリ『the Actress』運用にあたっての課題へのチャレンジ
mixiアプリ『the Actress』運用にあたっての課題へのチャレンジmixiアプリ『the Actress』運用にあたっての課題へのチャレンジ
mixiアプリ『the Actress』運用にあたっての課題へのチャレンジ
 
Biblnk
BiblnkBiblnk
Biblnk
 
kay-jpmobile
kay-jpmobilekay-jpmobile
kay-jpmobile
 
Python勉強会資料(MessageBoard作成)
Python勉強会資料(MessageBoard作成)Python勉強会資料(MessageBoard作成)
Python勉強会資料(MessageBoard作成)
 
Python札幌 2012/06/17
Python札幌 2012/06/17Python札幌 2012/06/17
Python札幌 2012/06/17
 
顧客リーチ手段再考
顧客リーチ手段再考顧客リーチ手段再考
顧客リーチ手段再考
 

Django 1.9