pythonモジュールメモ

mayaに関係ないあたりのPythonの各種モジュールやらの使い方メモ

pythonでJsonを使う

JSON(ジェイソン、JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptにおけるオブジェクトの表記法をベースとしているが、JSONはJavaScript専用のデータ形式では決してなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しに使えるよう設計されている。

いわゆる、XMLのようなデータ記述方式の1つであるJSON。
pythonのDict型やList型配列をそのまま出力→保存→読み込みできるので、ツールの設定情報やMayaのシーン情報を外部に出力する時などに重宝しそうです。
また、Web系APIは、このJSONに対応していることが多いので、WEBサービスと連携する時などでも活躍してくれそうです。

Back To Top

Pythonで例外を定義する

Exceptionを継承してクラスを作成することができる。
raise Class(<例外に表示する数値>)
のようにして使用する。

Back To Top

tempfileモジュールのメモ

一時的なファイルを使用したい場合は、 tempfile モジュールを使用する

TemporaryFile クラスを使用した場合は、close()されると、tempFileも自動で削除される。
削除されたくない場合は、

のようにする。

tempfileに拡張子をつけたい場合は、 suffixを指定する

subprocessなどで使用したい場合は、closeしないとエラーになってしまうので、
delete=Falseにして、close()したあとにsubprocessを実行する

 

Back To Top

Windowの大きさが変化したときに、Widgetサイズも変更する

Policy

アタッチしたいWidgetのsizePolicyプロパティの縦・横方向をExpandingに変更し、

Group

Windowのレイアウトを 水平・垂直に並べる にする。

spacer

画面いっぱいではなく、スペースを作りたいときは、Spacerを入れる。

Back To Top

FileDialogの使用方法

getOpenFileNameの引数で、拡張子のフィルターや、開いたときのフォルダの位置などを指定できる。
上記の場合は、 dds png tga bmp のみ選択できるFileDialogを表示。
返値は(filePath,fileFilterName)

 

Back To Top

windowを1つだけ表示する方法

pysideで if (window -exists xxx == True){} のように、すでにある場合は殺してから新しいWindowを作る方法

UIを作る時に showWindow() を実行すると、すでにある場合は閉じられ、
UIがない場合はtry:内はエラーではじかれて
最終的にfinally:でUI作成コマンドが実行される。

という、エラー処理の仕組みとGlobal変数を使用したコンボでできる。
もっと良い方法はないんだろうか…

Back To Top

PySideの画面サイズと表示位置を設定する

※QCursor().pos() で、マウスのポジションを取得することができる。
位置を変更したいオブジェクトの setGeometry() で変更する。

setGeometry(Window表示位置のx,Window表示位置のy,画面サイズx,y)

Back To Top

urls.pyのURLパターンからView.pyにパラメーターを渡す

(?P<args>ptn)
こんな感じにすると、<args>で指定した名前でptnにマッチする数値がkwargsに渡される
ptnは、パラメーターのパターンを正規表現で指定することができる
\d+ だと数字(桁数いくらでも)
[\w-]+ だと、文字・数字

http://127.0.0.1:8000/test/10/aaaaaaaaa/

たとえば、こんなURLにすると
kwargs = {test:10,page_slug:aaaaaaaaa}
のようになる。

Back To Top

view.pyやtemplate内でのURL指定

URLを指定は、 urls.py で指定した name を使用することができる。
+namespaceを指定している場合は、 <namespace>:<name>

テンプレートでのURL指定は↑のように。

nameを使用してリダイレクトする場合。

Back To Top

Djangoのmakemigrationsを行う

新しいFieldsが増えたときに、デフォルト設定などがないと 過去登録されたものをどうするか?という文章が出てくる。

Back To Top

setting.py の変数値を取得する

Template内で使用したい場合は、コンテキストで渡す

 

 

Back To Top

Fieldの初期値設定・Blank設定

Fieldに対して初期値を設定する場合は、引数に default=XXX を与える

引数に与えるときの型は、IntegerやFloatの場合はPythonの同じ型にする。 default=’0′ のように文字列にすると正しく動作しない。

Blank設定
特に指定のないものは、入力が必須のフィールド扱いになる。
入力必須ではなくする場合は blank を使用する。

null=True が使えるのは、整数型やブール型、日付のような、文字列では ないフィールド型の場合だけ
nullはデータベースでの記録 操作にのみかかわるパラメタなので、フォーム上で空の値を入力できるようにした ければ blank=True も指定する必要がある

Back To Top

コメントを残す

メールアドレスが公開されることはありません。

*