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

Django

Django + ReportLabをHerokuで動かしてpdfを表示する

最近、Pythonでpdfを作成する機会がありました。 Pythonのpdf作成ライブラリには何があるのかを調べたところ、ReportLabが一番有名そうでした。 ReportLab - Content to PDF Solutions rptlab / reportlab — Bitbucket また、DjangoのドキュメントにもReport…

HerokuにDjangoアプリをデプロイするとcollectstaticが自動実行される

HerokuにDjangoアプリをデプロイしたところ、 remote: ! Error while running '$ python manage.py collectstatic --noinput'. remote: See traceback above for details. remote: remote: You may need to update application code to resolve this error. …

DjangoをHeroku + uWSGIで動かしてみた

最近uWSGIにふれたため、HerokuでuWSGIを動かしてみようと思いました。 ただ、Herokuのチュートリアルではgunicornを動かしていました。 Getting Started on Heroku with Python | Heroku Dev Center HerokuでuWSGIで動かす方法を調べたところ、uWSGIのドキ…

DjangoにDjangoミドルウェアとWSGIミドルウェアを組み込んでみた

この記事は「Django Advent Calendar 2016 - Qiita」の13日目の記事です。 Djangoにはミドルウェアというフレームワークがあるため、リクエスト/レスポンス処理をフックして処理を追加できます。 Middleware | Django documentation | Django また、Djangoは…

Django + Handsontable.jsを使って、Excel風な入力画面を作ってみた

この記事は「Django Advent Calendar 2016 - Qiita」の11日目の記事です。 最近、DjangoでExcel風な入力画面を持つWebアプリを作る機会がありました。 何か良い方法がないかを調べたところ、jQueryへの依存がないJavaScriptライブラリHandsontableを知りまし…

Visual Studio CodeでPython + Djangoを書いて、py.testを実行してみた

それなりの規模のDjangoアプリを書く場合、PyCharmなどのIDEを使っています。 ただ、諸般の事情によりIDEが使えないことも考えて、Visual Studio Code(以下VS Code)のPython拡張を試してみました。 Python with Visual Studio Code - Visual Studio Code な…

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…

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ではテストの失敗内容を細かく出せそうでした。 …

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

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

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で静的ファイルを扱う…

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の場合、公式…

Windows7 + IIS + virtualenv + wfastcgiで、Djangoをホストする

Windows7 + IISでDjangoをホストする方法がないかを調べたところ、以下にてwfastcgiを知りました。 Python アプリケーション WSGIサーバ for Windows - NAVER まとめ また、production環境でもvirtualenvを使ったほうが良さそうだったため、virtualenv + wfa…

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で食べたリンゴの割合をグラ…

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の…