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…