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

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モジュールを一覧表示してみました。 環境 レンタルサー…

レンタルサーバ上のPythonからメールを送信しようとしたら、Client host rejectedになった

SSHの使えないレンタルサーバにて、Pythonからメールを送信しようとしたらClient host rejectedエラーが出たため、対応をメモしておきます。 環境 レンタルサーバ SSHによる接続不可 Python 2.x 開発環境 Windows7 x64 Visual Studio Code 0.5.0 Python 2.x …

SSHが使えないレンタルサーバで、PythonのBottleを動かしてみた

SSHが使えないレンタルサーバにて、Webアプリを作る機会がありました。 SSHが使えないのでパッケージを入れることができないことから、ダウンロードすれば使えるフレームワークを探してみました。 すると、PythonのBottleというWeb frameworkが1ファイルで動…

Raspberry Pi 2にて、FeliCa読み取り時にPowerOffし、Slackへ通知する

Raspberry Pi2でいろいろとやっている中で、コマンドを入力して電源OFFにするのが手間に感じたため、何とかしようと考えました。 Web上には、Raspberry Piにシャットダウンボタンを付けるなどの電子工作記事がありました。ただ、まずは手元にある機器で何と…

Raspberry Pi 2にて、direnvを使ってPythonの環境を構築する

Raspberry Pi 2上のPython環境について調べてみたところ、direnvを使って構築するのが良さそうだったので、試してみた時のメモを残します。 zimbatm/direnv 改めて、direnvを使いましょう! - HDE BLOG 環境 Windows TeraTerm Portable Raspberry Pi Raspber…

Raspberry Pi + libpafe + Python + ctypesで、FeliCaのIDmを読む

手元に古いパソリがあったため、以下を参考に、Raspberry Piとパソリ RC-S320を使ってFeliCaを読んでみました。 Rasberry piでfelica(edy/suica)を読む - いろいろつまみ食い 環境 開発PC Windows7 パソリ RC-S320 Visual Studio 2013 Community PTVS 2.1.0 …

Python Tools for Visual Studioを使って、Raspberry Pi 上のPythonをリモートデバッグする

Raspberry Piでアプリを作成するためにライブラリを探してみたところ、Python製のものが結構ありました。 そのため、慣れているVisual Studio + Python Tools for Visual Studio(以下、PTVS) でPythonを書いてみようと考えました。 Microsoft/PTVS - GitHub …

GoogleAppEngine/Pythonから、HipChat API v1/v2を使ってみた

GoogleAppEngine/Python(以下、GAE/py)から、HipChat API v1/v2を使ってみた時のメモ。 環境 Windows7 x64 Python 2.7.5 Google App Engine SDK for Python 1.9.9 HipChat APIについて 今のところHipChat APIはv1/v2の2つがあります(ただし、v2はBETA)。 API…

Windows7 + Python 2.7.6 にて、GAE/pyのランチャーのRunでエラー

久しぶりにGAE/pyに触ることとなったため、新規にGAE/pyの環境構築を行い、デプロイしてあるソースコードをダウンロードしました。 その後、GAE/pyのランチャーでRunしようとしたところエラーが出たため、その対応内容を残しておきます。 環境 Windows7 x64 …

Deal of the Day botの対象にManningを追加した

先日、Manningのサイトで「The Art of Unit Testing, Second Edition」を購入しましたが、そこでもDeal of the Dayがありました。 そこで、各社のDeal of the Dayの@ebooksdealofdayにManningも追加しました。 なお、ManningではRSS配信がなかったため、lxml…

GoogleAppEngineからGoogle Calendar API v3 を使う

GoogleカレンダーをGoogle App Engineで操作するときはどうすれば良いのかと思い、調べたときのメモ。 ■GoogleカレンダーのAPIについて 現在v1〜v3まであるが、v1とv2については、2014/11/17に提供終了とのことなので、v3を使うことにする。 Web上の情報もv1…

各社のDeal of the Day用のbotのフィード(RSS)を自作してみた

先日作成したボットはフォローやフィードにて内容を購読することができる。 ただ、GAEでフィードを自作してみたいと思い、実装してみた。 ■実装するときに悩んだことと対応 GAEでFeedを出力するには そのものの記事があり、参考になりました。 Google App En…

各社のDeal of the Day用のbotを作ってみた

以前、以下のエントリにあるようにApressのBotを作成した。 ApressのDeal of the Day用のbotを作ってみた - メモ的な思考的な その後、手元にある本の出版元を調べてみると、各社より Deal of the Day が開催されていた。 ただ、残念ながらGoogleリーダーで…

GAEアプリをGitHubに上げるために、app.yamlやAPIキーを書き換えるためのツールを作ってみた

以前、GAEアプリをGitHubに上げるためのツールとして、以下のものを作ってみた。 GitHubに上げるために、app.yamlのapplicationを変更するツールの作成 - メモ的な思考的な しかし、GitHubで公開できない情報はapp.yamlのapplicationだけではなく、各種APIの…

ApressのDeal of the Day用のbotを作ってみた (2)

前回はApressのボットを作成したものの、一日2回つぶやくなどの不具合があったため、今回はその部分を改修することに。 改修してみたら予想外に大きくなってしまったが、いくつか有意義であったため、そのメモ。 ■追加した仕様 Apressのサイトのスクレイピン…

ApressのDeal of the Day用のbotを作ってみた

最近、オライリーやApressのWebサイトで Deal of the Day があることを知り、欲しい本が掲載されている場合は、ついつい手が出てしまう。 さらに、オライリーやApressでは、Deal of the Dayの内容をRSS配信してくれているため、余計に手を出しやすい。 O'REI…

GitHubに上げるために、app.yamlのapplicationを変更するツールの作成

「作れば分かる本」のPython写経では、app.yamlのapplicationを修正してGitHubへ上げていた。 ただ、さすがに何度も同じことを手動で行うのはよくないので、Pythonプログラムを作成した。そのメモ。 ■環境 Windows7 x64 yaml編集用として、PyYAMLをインスト…

Windows7 x64にPyYAMLをインストールする

前回でvirtualenvの環境ができたので、早速yamlを扱うプログラムを作成するためにPyYAMLをインストールしようとしたところ、少々ハマったのでメモ。 ただし、端末によって成功/失敗があったため、根本的な原因はよく分からず。 ■環境 ThinkPad x201s、他の端…

Windows7 x64でvirtualenvを使えるようにする

「作れば分かる本」のPython写経ではPythonで開発したものの、環境構築については何も考えずに作業。 そんな中、Pythonの環境構築について分かりやすいエントリを発見。 YAMAGUCHI::weblog - Pythonの環境設定でむかついてる人はとりあえずこれをコピペで実…

「作ればわかる! Google App Engine for Java プログラミング」本をPythonで書いてみる (10)

引き続き、「作ればわかる! Google App Engine for Java プログラミング」本にてPythonを修行中。 今回は、最後の章の「みんなでお絵かき」。 ChannelAPIとJavaScriptがメインであったので、JavaScript部分は書籍を見ながら写経する(その分、でき上がりがあ…

「作ればわかる! Google App Engine for Java プログラミング」本をPythonで書いてみる (9)

引き続き、「作ればわかる! Google App Engine for Java プログラミング」本にてPythonを修行中。 今回はiPhoneアプリの作成・・・のはずが、以下の理由で完全な実装は諦めることにした。 iPhoneが手元にない 実機での検証ができない他、PCのJavaScriptでは…

「作ればわかる! Google App Engine for Java プログラミング」本をPythonで書いてみる (8)

引き続き、「作ればわかる! Google App Engine for Java プログラミング」本にてPythonを修行中。 今回は今までのまとめのような感じ。 RSSをfeedparserで、XMLをlxmlで扱うやり方について学ぶことができた。 ■実装時に困ったことと対応 gooのRSSを扱う方法…

「作ればわかる! Google App Engine for Java プログラミング」本をPythonで書いてみる (7)

引き続き、「作ればわかる! Google App Engine for Java プログラミング」本にてPythonを修行中。 今回はTwitterボットの作成。 PythonでのTwitterの扱い方をメインに学んだ。 また、公式サポートサイトにはSentenceの削除も掲載されていたので、合わせてそ…