読者です 読者をやめる 読者になる 読者になる

Python

Python3.5 + smtplib.SMTP_SSL.send_message()で、Gmailからメールを送信する

Python3.5 + SMTPで、Gmailからメールを送信しようと考え調べてみたところ、Web上には色々な書き方がありました。 自分なりにいろいろと手を動かしてみて、Pythonの標準ライブラリであるsmtplib.SMTP_SSL.send_message()に行き着いた時のメモを残します。 た…

Pythonの拡張モジュールからexeファイルを作成後、whlファイルに変換し、別の端末でpip installする

前回は、Python3.5 + Visual C++ Build Tools 2015環境で、Pythonの拡張モジュールをビルドしました。 ただ、Vista世代の端末ではVisual Studio 2015系がインストールできないことから、Python3.5系向けの拡張モジュールがビルドできませんでした。 そこで今…

Pythonの拡張モジュールインストール時にvcvarsall.batエラーが出たため、Visual C++ Build Tools 2015でビルドした

Pythonの拡張モジュールであるPyCryptoをビルドしてWindowsへインストールしようとしたところ、以下のエラーが出たため対処した時のメモを残します。 (env) >pip install pycrypto ... building 'Crypto.Random.OSRNG.winrandom' extension error: Unable to…

Windows + Apache2.4 + mod_wsgiにて、virtualenvのDjangoをバーチャルホストで動かす

前回の記事では、Apache + mod_wsgiによるBottleのホストを行いました。 今回は、公式ドキュメントを参考にしながら、Djangoをバーチャルホストで動かしてみます。 How to use Django with Apache and mod_wsgi | Django documentation | Django 目次 環境 D…

Windows + Apache2.4 + mod_wsgiにて、virtualenv環境のWSGIアプリ(Bottle)を動かす

前回、Windows環境でmod_wsgiをビルドしてApache2.4にて動作することを確認しました。 mod_wsgiの公式ドキュメントを参考に、今回はvirtualenv環境のWSGIアプリ(Bottle)を動かしてみます。 mod_wsgi — mod_wsgi 4.5.2 documentation 環境 Windows7 x64 Apach…

Windows環境にて、mod_wsgiを自分でビルドし、Apache2.4へインストールする

PythonのWSGIアプリをWindows + Apacheでホストすることを考えたところ、 mod_wsgiを使うのが良さそうでした。 mod_wsgi/README.rst at master · GrahamDumpleton/mod_wsgi ただ、mod_wsgiのREADMEを読むとPython3.4系までしか記載がなく、手元のPython3.5系…

b-PAC SDKをPython + pywin32(win32com)で操作してみた

前回、pythonnetを使って .NET + b-PACを扱いました。 ただ、いろいろと辛かったため、今回はpywin32を使ったCOM経由でb-PACを操作してみました。 結論から言うと、イベント処理も含めて、以下のようなC#でできたことはPython + pywin32でも実装できました。…

b-PAC SDKをPython + pythonnetで操作してみた

以前、ブラザーのラベルプリンタを操作するb-PACについて、C#でいろいろと試してみました。 ブラザーのラベルプリンタまわりを操作する b-PAC SDK を使ってみた - メモ的な思考的な そんな中、前回インストールしたpythonnetを使うことで、.NET + b-PACを扱…

WindowsにPythonのpythonnetパッケージをインストールする

CPythonから.NETにアクセスできるPythonパッケージがないかを探したところ、pythonnet(Python for .NET)がありました。 pythonnet/pythonnet - GitHub ただ、インストールで少々悩んだため、メモを残しておきます。 環境 Windows10 x64 Python 3.5.1 x86 pip…

Windows10にScapyをインストールする

Windows10 + Pythonでパケットを扱うライブラリを探してみたところ、Scapyが良さそうでした。 Scapy - official site secdev/scapy: Scapy: the python-based interactive packet manipulation program & library - GitHub そこで、Scapyをインストールしよ…

Django + pytestで、setupやteardown、fixtureのscopeなどの実行タイミングを調べてみた

Django + pytestでテストの初期化や後始末を書く場合、 django.test.TestCaseを使った、setUp()やtearDown() pytestを使った、classic xUnitスタイルのsetup_xxx()やteardown_xxx() pytestを使った、@fixtureのscope などのテストフィクスチャが使えます。 …

Django1.7から、models.pyの分割方法に関する変更が入ってた

Djangoでmodel.pyを分割しようと思い、以下の記事を読みました。記事のDjangoバージョンは1.4でしたが、1.9でも上記の方法で動作しました。 Djangoのアプリケーションでmodelsモジュールを複数ファイルに分割する - 偏った言語信者の垂れ流し ただ、各Model…

Django + factory_boyで、1対多や多対多のリレーションを持つテストデータを作る

DjangoでModelまわりのテストデータを用意するには何を使うのが良いのかを調べてみたところ、factory_boyを使うのが良さそうでした。Djangoの他、Mogo・MongoEngine・SQLAlchemyなどのORMにも対応しているのも良いです。 rbarrois/factory_boy: A test fixtu…

Djangoアプリについて、pytest-djangoを使ってテストしてみた

Djangoのテストについて考えていたところ、以下の記事に出会いました。 Djangoのテストの書き方について勉強したのでまとめる - c-bata web Django Best Practice への道 #2 後者の記事にもある通り、py.testではテストの失敗内容を細かく出せそうでした。 …

Python3 + WMI + ospp.vbsで、Windows端末やMS Office情報を取得してみた

最近、Windows端末やMS Officeの情報を扱うために、WMI(Windows Management Instrumentation) や ospp.vbsを使う機会がありました。 Python3で扱う方法を探してみたところ、 WMIはWMIパッケージを使う WMI 1.4.9 : Python Package Index WMI - Windows Manag…

Python3 + Flask + wfastcgi のアプリを、IISでホストする

以前調べた範囲では、Python3 + Djangoでは、MS Accessをバックエンドにするのは難しいものの、SQLAlchemy + pyodbc であれば、比較的楽にPython3からMS Accessへと接続できそうだとわかりました。 Python3を使ってMS Access(*.accdb)へ接続してみた - メモ…

Python3.5向けに、pyodbcをビルド・インストールする

Python3.5にpyodbcをpipでインストールしようとしたところ、以下のエラーが出てインストールできませんでした。 (env) >pip install pyodbc ... running bdist_wheel running build running build_ext building 'pyodbc' extension error: Unable to find vc…

IIS7.0 + Python3 + wfastcgi 構成のWSGIアプリ作成時に発生したエラーのメモ

IIS7.0にて、wfastcgiを使ってPythonのWSGIアプリ(今回はFlask)をホストしようとしたところ、いくつかエラーが出て引っかかったため、メモを残しておきます。 環境 IIS 7.0 Python 3.5.1 wfastcgi 2.2 Flask 0.10.1 ポート4567で稼働 wfastcgi-enableでsigna…

DjangoのListViewで、ページをフィルタしてみた

DjangoのListViewを使って、こんな感じでページをフィルタしてみた時のメモです。 ただ、以下の実装で本当に良いのか分かりませんので、何かあればご指摘ください。 環境 Windows10 Python 3.5.1 Django 1.9.4 myprojectプロジェクトに、myappアプリを追加 M…

Python + py-trelloで、Trello APIを使ってみた

最近、ToDo管理はTrelloを使っています。WebのGUIは直感的に分かりやすい上、APIも提供されています。 Trello API Reference | Trello Developers Trello API用のPythonライブラリを探したところ、starの多いpy-trelloが気になりました。 Community | Trello…

Djangoで、CreateViewでPOST後に動作する、ModelFormやModelのバリデーションを試した

Djangoで、CreateView + ModelForm + Modelを使った時に、 バリデーションを書く場所 バリデーションの実行順序 が気になりました。 後述の通り日本語の分かりやすい記事があったものの、実際に手を動かさないと理解できない部分もあったため、その時のメモ…

Djangoで、messages frameworkを使ったフラッシュメッセージを試してみた

Webアプリでフラッシュメッセージを表示する場合、ASP.NET MVCではTempData、Railsではflashあたりを使うと思います。 Djangoでは何を使うのかを調べてみたところ、標準で用意されているmessages frameworkを使うのが良さそうでした。 The messages framewor…

Djangoで、Paginatorやdjango-pure-paginationを使ってページングしてみた

Djnagoで、1ページあたりの件数が多くなった時にページングする方法を調べた時のメモです。 なお、ページングという用語については、 ページング(Paging) ページネーション(Pagination) ページャー(Pager) などの呼び方があるものの、今回は以下に従いページ…

Django1.9で追加されたPermission mixinsを使って、パーミッションなどのアクセス制御を試してみた

Djangoでパーミッションまわりを調べていたところ、Django1.9より AccessMixin LoginRequiredMixin PermissionRequiredMixin UserPassesTestMixin が追加されたということを知りました。 Django 1.9で追加されたメジャー機能の紹介 - 僕とコードとブルーハワ…

Django1.9から、django-adminやmanage.pyに加え、`python -m django`が使えるようになった

Djangoのドキュメントを見ていたら、django-adminやmanage.pyに加えて、python -m djangoがコマンドラインから使えるようになっていました。 django-admin and manage.py | Django documentation | Django どんな感じなんだろうと思いと調べた時のメモを残し…

Djangoで、Djangoアプリ単体でのユーザ作成・変更・認証・パスワード変更・パスワードリセットを試してみた

以前、DjangoでLDAP認証を試してみました。 Django + LDAP3で、ActiveDirectoryのLDAP認証によるログインとログアウトを試してみた - メモ的な思考的な ただ、Djangoアプリ単体での認証は試したことがなかったため、今回ユーザ作成・変更・認証、およびパス…

Django + django-formtoolsで、フォームの確認画面を作ってみた

Djangoでフォームの確認画面(プレビュー)を出す方法を調べてみたところ、django.contrib.formtools.FormPreviewがありました。 ただ、Django1.8よりdjango.contrib.formtoolsがライブラリdjango-formtoolsとして切り出されていました。 django.contrib.formt…

Djangoで、Class-based generic views + ModelForm を使ってみた

Djangoにて、「フォームで入力すればModelに保存される」という、Modelに紐付いたFormが必要になりました。 調べてみたところ、ModelFormを使えば良さそうでした。 Creating forms from models | Django documentation | Django そこで、Class-based generic…

Djangoで、GitHubに上げたDjangoアプリの再利用を試してみた

Djangoまわりのドキュメントを眺めていると、再利用可能なDjangoアプリという言い方を目にします。 では、どのようにすればDjangoアプリを再利用できるのか調べてみたところ、公式ドキュメントに記載がありました。 Advanced tutorial: How to write reusabl…

Google App EngineでDjango + Djangaeを動かしてみた

GoogleAppEngine/Python(以下、GAE)でDjangoを動かしたときのメモを残します。 事前調査 GAEに含まれているバージョンについて GAEにどのバージョンが含まれているかを調べてみたところ、Django1.5をalphaサポートしているようでした。 Libraries in Python …

IISのApplication Request Routingを使って、Aipo(Tomcat)とDjangoを振り分ける

Aipoが動作している環境に、IIS + Djangoを同居させる機会がありましたので、メモを残します。 Aipoは Tomcatのポート80で動作 http://<ホスト名>/aipoにてアクセス という形で動作していました。 また、Djangoは、 IISでホストし、ポート9999で動作 http://…

Django + IIS + wfastcgiで静的ファイル(CSS, JavaScriptなど)を配信する

以前、IIS + wfastcgiによるDjangoのホストを試しました。 Windows7 + IIS + virtualenv + wfastcgiで、Djangoをホストする - メモ的な思考的な 今回は、Django + IIS + wfastcgiでの静的ファイル配信を試してみました*1。 なお、Djangoで静的ファイルを扱う…

Python3を使ってMS Access(*.accdb)へ接続してみた

最近、DjangoのデータベースバックエンドにAzure SQL Databaseが使えるライブラリの存在を知りました。 michiya/django-pyodbc-azure そこから、MS AccessをDjangoのデータベースバックエンドとして使えるのかが気になりました。 ただ、そもそもPython3を使…

Azure Active Directory Domain ServicesでLDAPのbindを試してみた

NSEG Advent Calendar 2015 - Adventarの4日目の記事です。 www.adventar.org 今日はやってみた系のゆるふわな記事です。 先日NSEGでお世話になっている@kotyさんより、Pythonライブラリのパッケージ化に関するお題をいただきました。 よく見たらthinkAmiさ…

「Two Scoops of Django: Best Practices for Django 1.8」を読んだ

Djangoの公式ドキュメントを読んだり、QiitaにあるDjango入門を写経してみたり、アプリを書いていたりする中で、どのように書けばDjangoっぽいアプリになるのだろうかと悩みました。 そこで、良さそうな本を探してみたところ、「Two Scoops of Django: Best …

Windows + Win32-OpenSSH環境へ、FabricでDjango + IISアプリをデプロイしてみた

前回、IISでDjangoをホストしてみたので、今回はそれをデプロイする方法を試してみます。 事前調査 実現できそうなデプロイツールの調査 今後のことも考えて、Windowsに限定しないデプロイツールを調べてみたところ、 Ansible ローカルがWindowsの場合、公式…

Django + pyradで、Windows NPSを使ってUser-Password方式のRADIUS認証をしてみた

前回はActiveDirectoryを使ったLDAPでの認証を行いました。 他に認証方法がないかを探してみたところ、過去にWindows Serverの機能であるネットワークポリシーサーバー(以下、NPS)のRADIUSを使って、無線LANやSSTP、L2TPなどの環境構築をしたことを思い出し…

Django + LDAP3で、ActiveDirectoryのLDAP認証によるログインとログアウトを試してみた

DjangoでActiveDirectoryを使ったLDAP認証を試してみたので、その時に悩んだことや実装内容をメモしておきます。 環境 開発環境 Windows7 x64 Python 3.4.3 Django 1.8.4 LDAP3 0.9.9 IntelliJ IDEA 14.1.4 Python plugin 4.5 141.1624 PupSQLite 1.25.4.1 A…

SQLのDELETE文を、DjangoのQuerySet APIで書いてみた

前々回はSELECT、前回はINSERT, UPDATEだったので、今回はDELETEを書いてみます。 なお、ベースのアプリは前回のものを引き継ぎます。 環境 Windows7 x64 Python 3.4.3 Django 1.8.4 SQLite3 PostgreSQL 9.4.4 x64 DELETE 全件削除 Deletion.objects.all().d…

SQLのINSERT, UPDATE文を、DjangoのQuerySet APIで書いてみた

前回はSELECT文まわりを試したので、今回はINSERT, UPDATEまわりを試してみます。 なお、ベースのアプリは前回のものを引き継ぎます。 環境 Windows7 x64 Python 3.4.3 Django 1.8.4 SQLite3 PostgreSQL 9.4.4 x64 複数データベース環境の用意 今回はSELECT …

SQLのSELECT文を、DjangoのQuerySet APIで書いてみた

SQLのSELECT文をDjangoのQuerySet APIで書いてみた時のメモを残しておきます。 2015/9/6 追記 id:kkotyy さんのコメントを受けて、本文中の.values()は省略しました。 参考:QuerySet API reference | Django documentation | Django なお、GitHubのコードは…

Django + Herokuでdj-ringo-tabetterを作った時の作業メモ

前回、Python + Django + HighchartsのHerokuアプリ作成を記事にしました。 今回は、これからのDjangoで開発するときの参考にするため、その時の流れや考えたことを残しておきます。 目次 開発環境 仕様 アプリ構成 tweets api highcharts ディレクトリ構成 …

Python + Django + Highcharts + Herokuで食べたリンゴの割合をグラフ化してみた

以前、食べたリンゴの割合をグラフ化するHerokuアプリを作りました。 Ruby + Heroku + Highchartsで食べたリンゴの割合をグラフ化してみた - メモ的な思考的な C# + Nancy (OWIN, SelfHost, SSVE) + Dapper + Heroku + Highchartsで食べたリンゴの割合をグラ…

Python + peeweeを使って、Heroku Postgresに接続する

最近、新旧のHerokuアプリ間でデータを移行する機会がありました。 当初は単純にリストアすればいいかと考えましたが、新旧間でテーブル構造などを変えたことに気づきました。 また、一部のテーブルのみのリストアができなくなったみたいで、ローカルのPostg…

Windows + Python + virtualenvに、psycopg2をインストールする

IntelliJ IDEAのPackage Managerからpsycopg2をインストールしようとしたところ、 Error: pg_config executable not found. とエラーになったため、他の方法を試した時のメモを残します。 環境 Windows7 x64 Python 3.4.3 x86 psycopg2(win-psycopg) 2.6.1 I…

IntelliJ IDEAにて、virtualenv + Djangoプロジェクトの新規作成時にエラー

IntelliJ IDEAでDjangoプロジェクトを新規作成しようとしたらエラーになったため、対応した時のメモを残します。 環境 Windows7 x64 IntelliJ IDEA 14.1.4 Python 3.4.3 Django 1.8.3 症状 File > New > Projectを選択 左側でPythonを選択し、Project SDKの…

Python用にIntelliJ IDEAの設定をしてみた

IntelliJ IDEAでPythonを書くときにいくつか設定を行ったため、忘れないうちにメモしておきます。 なお、デフォルトでも設定が有効なものもありますが、とりあえず一覧として上げておきます。 環境 Windows7 x64 IntelliJ IDEA 14.1.4 File > Settings より…

IntelliJ IDEAにてBottleアプリを作成・実行してみた

最近、SSHが使えないレンタルサーバでBottleを使っているのですが、ファイルが増えてきたので、ファイルの文字コード・改行コードを一括で設定・変更したくなりました。 そこで、IntelliJ IDEAにてBottleアプリを作成・実行してみました*1。 環境 Windows7 x…

Python + Bottle + Jinja2で、Jinja2のカスタムフィルターを使う

Python + Bottleを使っている中で、PHPのnl2brのようなものがほしくなりました。 ただ、データとしては<br>タグを持ちたくないので、HTML側で何とかできないかを調べてみました。すると、BottleのJinja2テンプレートでもカスタムフィルターが使えることが分かっ…

SSHが使えないレンタルサーバで、Pythonモジュールを一覧表示してみた

SSHの使えないレンタルサーバ環境でJinja2を使いたかったのですが、ドキュメントを読んだだけではインストールされているか分かりませんでした。 そのため、Bottleを使って、レンタルサーバ上のPythonモジュールを一覧表示してみました。 環境 レンタルサー…