Django

DjangoのModelのFieldのオプション null と blank の違いについて

DjangoにてDBのNOT NULL 制約を外したい場合、nullとblankのどちらを使えばよいのか忘れることがあるため、メモしておきます。 目次 環境 違い 確認 Model マイグレーションファイルの作成 sqlmigrateで、発行されるSQLを確認 マイグレーションファイルを適…

Django2.0のプロジェクトのurls.pyにおける、include()での引数namespaceについて調べてみた

Django 2.0にて、プロジェクトの urls.py を from django.urls import path, include urlpatterns = [ path('old/', include('myapp.urls', namespace='old')), ... ] アプリの urls.py を from django.urls import path from django.views.generic import T…

Djangoで、アプリ用ディレクトリを作成し、INSTALLED_APPSにAppConfigのサブクラスを設定してみた

Djangoでアプリの数が増えると見づらいかなと思い、アプリ用ディレクトリを作成してみました。 その時に INSTALLED_APPS に AppConfig を指定する場合で少し悩んだため、メモを残します。 なお、こんな感じでプロジェクトとアプリを作成しました。 # Django…

Raspberry Pi 2 Model B + docker-compose上に、Django + PostgreSQLなアプリをデプロイしてみた

Raspberry Pi 2 Model Bを使ってDjangoアプリを作ろうかなと思いました。 環境構築をどうするかと考えたところ、RaspbianでDockerを動かせると知りました。 Docker comes to Raspberry Pi - Raspberry Pi Dockerが動くならdocker-composeもいけるのではと思…

DjangoCongress JP 2018 に参加 & 発表しました #djangocongress

5/19に開催された、DjangoCongress JP 2018に参加 & 発表しました。 DjangoCongress JP 2018 場所は、サイボウズ株式会社の東京オフィスでした。 東京オフィス アクセスマップ | サイボウズ株式会社 ここが日本橋か pic.twitter.com/FiTUXSpXn1— thinkAmi (@…

「現場で使える 基礎Django」を読みました #技術書典

最近Djangoを使う人も増えてきているようで、自分がさわり始めた頃に比べれば、分からないことことでも探せば出てくるようになりました。 とはいえ、Djangoの全体像をさらっとながめられるようなものがあまりなく、自分のDjango自体の理解が正しいのか悩んで…

Django + django-localflavorで、フォームの郵便番号入力や都道府県選択を作成してみた

Djangoのフォームで 郵便番号入力 都道府県選択 を簡単に作る方法を調べたところ、 django-localflavor がありました。 django/django-localflavor: Country-specific Django helpers, formerly of contrib fame The “local flavor” app — django-localflavo…

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://…