-
DjangoでモデルデータをCSV・JSON・Excel形式にエクスポートする方法
Djangoアプリケーションを開発していると、モデルのデータをCSV、JSON、Excel(.xlsx)などの形式でエクスポートし、レポート作成や他システムでの利用に活かしたい場面があります。自前でスクリプトを書くことでも対応できますが、実はもっと簡単な方法があります。 この記事では、「django-import-export」というパッケージを使って、Django管理画面からワンクリックでモデルデータをエクスポートする手順を解説します。 事前準備 まずDjangoプロジェクトを作成し、アプリを追加します。urls.pyの設定やINSTALLED_APPSへのアプリ登録など、基本的なセットアッ
-
Djangoフォームウィジェットの使い方を徹底解説|Textareaで入力フォームをカスタマイズ
Djangoのフォームウィジェットとは? この記事では、Djangoフォームにおける「ウィジェット(widget)」の使い方について詳しく解説します。ウィジェットを活用すると、フロントエンドの見た目や操作性を大きく向上させることができます。 ウィジェットとは、DjangoフォームからHTMLとしてレンダリングされる要素のことです。テキストボックス(input)、テキストエリア(textarea)、パスワード入力欄(password input)など、フォームを構成するUI部品はすべてウィジェットに該当します。 事前準備:プロジェクトとアプリの作成 まずはDjangoプロジェクトとアプリを作成
-
DjangoでPOSTリクエストの送信元IPアドレスを取得する方法
本記事では、DjangoでPOSTリクエストを受け取った際に、その送信元IPアドレスを取得する方法を解説します。 Webアプリケーションを運用していると、セキュリティ対策の一環としてアクセス元のIPアドレスを把握したくなる場面が多々あります。例えば、悪意のある特定のIPアドレスをブロック(BAN)したい場合や、同一のIPから短時間に大量のリクエストが送られていないか(不正なスパム行為やDoS攻撃の兆候)を監視したい場合などが挙げられます。 こうした処理は、サードパーティ製パッケージdjango-ipwareを使えば、ごく簡単に実装できます。それでは実際の手順を見ていきましょう。 事前準備 まず
-
DjangoでGitHub OAuth認証を有効にする方法
多くの開発者向けWebサイトでは、GitHubのソーシャル認証が導入されており、ユーザーにとって非常に便利な機能です。この記事では、Djangoで構築したWebサイトにGitHub認証を追加する手順を、初心者にもわかりやすく解説します。 1. GitHubでOAuthアプリケーションを作成する まず、https://github.com/settings/developers/ にアクセスしてOAuthアプリケーションを作成します。作成時に、以下の2つのURLを登録してください。 https://127.0.0.1:8000/ https://127.0.0.1:8000/accounts
-
DjangoでGoogleログインを実装する方法|django-allauthを使った手順を解説
多くの開発者向けサイトでは、Googleのソーシャル認証(ソーシャルログイン)が導入されており、ユーザーにとって非常に便利な機能です。本記事では、DjangoプロジェクトにGoogleログイン機能を実装する手順を、django-allauthライブラリを使って詳しく解説します。 事前準備:Google Cloud Consoleでの設定 まず、Google側でOAuth認証のための準備を行います。 Google Cloud Consoleにアクセスし、新しいプロジェクトを作成します。 「OAuth同意画面」に移動し、必要な情報を入力して「保存して続行」をクリックします。 「認証情報」ペ
-
Djangoで単一のビューを使って複数のフォームを同時に処理する方法
Web開発をしていると、1つの関数やビューの中で複数のフォームを処理したい場面に出くわすことがあります。この記事では、2つのフォームを同じビュー内で同時に扱うための実装方法を解説します。この手法は多くの場面で役立ちますし、考え方を応用すれば3つ以上のフォームにも対応できます。 事前準備 まずDjangoプロジェクトとアプリを作成します。ここではプロジェクト名を「multipleFormHandle」、アプリ名を「formhandlingapp」としました。 続いて、settings.pyのINSTALLED_APPSにアプリを追加し、プロジェクトのurls.pyにアプリのURLを含めるなど、
-
Djangoプロジェクトにdjango-materialを導入してMaterial Designのフォームを作る方法
Material Design(マテリアルデザイン)は、開発者の間で非常に人気のあるデザインテンプレートです。通常はCDN経由でフロントエンドに読み込んで使用します。本記事では、このMaterial DesignをDjangoのフォームウィジェットに適用し、ビューからフォームをレンダリングする方法を解説します。django-materialは、CDNを使わずに、レンダリングされるHTMLファイルやフォームウィジェットへ自動的にMaterial Designを適用できるライブラリです。1. django-materialのインストールまず、django-materialパッケージをインストールし
-
Djangoでモデルのファイルをダウンロード可能にする方法【django-downloadview活用ガイド】
Djangoプロジェクト内のファイルをダウンロードできるようにしたい場合、django-downloadviewというパッケージを利用すると簡単に実現できます。このパッケージを使えば、サーバー上にホストしたあらゆるファイルをダウンロード可能な状態にできます。この記事では、Djangoプロジェクトでファイルをダウンロード可能にする手順を、実際のコード例とともにわかりやすく解説していきます。1. パッケージのインストールまず、以下のコマンドでdjango-downloadviewをインストールします。pip install django-downloadview2. プロジェクトの基本設定次に、D
-
【Django】django-reversionでモデルデータの変更履歴追跡と削除データの復元を実装する方法
はじめに この記事では、Djangoアプリケーションに「オブジェクトのデータ追跡」機能と「削除されたデータの復元」機能を追加する方法を解説します。 リバージョン(Reversion)とは、削除してしまったモデルデータを元に戻す仕組みのことです。django-reversionを利用すれば、ワンクリックですべての削除済みデータを復元できるだけでなく、各モデルオブジェクトの変更履歴(バージョン)も自動的に記録・追跡できます。 事前準備:プロジェクトのセットアップ まず、Djangoプロジェクトとアプリを作成し、settings.py の INSTALLED_APPS に作成したアプリを追加してお
-
DjangoのモデルにJSONデータをインポートする方法【django-import-export活用】
この記事では、django-import-exportパッケージを使って、JSON形式のデータをDjangoのモデルにインポートする方法を解説します。このパッケージを利用すれば、JSON、CSV、XLSX、YAMLなど、さまざまな形式のファイルからデータを取り込むことが可能です。事前準備:プロジェクトとアプリの作成まずはじめに、Djangoプロジェクトとアプリを作成しましょう。URLの設定や、INSTALLED_APPSへのアプリ追加といった基本的なセットアップを行ってください。次に、データを格納するためのモデルを作成します。今回の手順では、views.pyやurls.py、HTMLテンプレー
-
Djangoでコードを書かずにお問い合わせフォームを作成しデータを保存する方法
Djangoではお問い合わせフォームを簡単に作成できますが、実際にはフォームの定義、ビューの作成、モデルの設計、さらにAdminへのモデル登録など、多くの作業を管理する必要があります。本記事では、事前に用意されたパッケージ「django-contactforms」を活用し、あらかじめ定義されたモデルへデータを自動保存するお問い合わせフォームの作成方法をご紹介します。models.py や views.py にコードを書くことなく、独自のHTMLも最小限の記述で実装できる点が大きな魅力です。それでは早速始めましょう。実装手順まず、Djangoプロジェクトとアプリを作成しておいてください。1. パ
-
DjangoモデルでPickleフィールドを作成する方法
PythonのPickleは、Pythonオブジェクト構造をシリアライズ(直列化)およびデシリアライズ(非直列化)するために主に使用されるモジュールです。つまり、Pythonオブジェクトをバイトストリームに変換し、ファイルやデータベースに保存したり、セッション間でプログラムの状態を維持したり、ネットワーク経由でデータを転送したりするための仕組みです。この記事では、Pickleオブジェクトをそのまま保存できるDjangoカスタムフィールドを作成する手順を解説します。作業はmodels.pyとDjangoシェルだけで完結します。django-picklefieldのインストールまず、django-
-
Djangoのrequest.sessionを使ったシンプルなカウンターアプリの作成方法
この記事では、ボタンをクリックするたびに数値が1ずつ加算されていく、とてもシンプルなカウンターアプリの作り方を紹介します。カウントの値はセッション(session)に保存されるため、ブラウザのタブを閉じてもデータは保持され続けます。セッションの基本的な使い方と、セッションを介したデータの受け渡し方法を理解できる内容となっています。 実装例 1. urls.py の設定 まず、urls.py に以下のコードを追加します。 from django.urls import path from django.urls.resolvers import URLPattern from . impo
-
DjangoでURL短縮アプリを作成する方法を徹底解説
この記事では、Djangoを使ってURL短縮アプリを作成する方法を解説します。長いURLを短いURLへ変換するだけのシンプルなアプリですが、実装にはPythonライブラリを使用するため、Django専用の仕組みに依存せず、このコードは他のあらゆるPythonプロジェクトでも流用できます。 まず最初に、Djangoプロジェクトとアプリを作成しましょう。その後、settings.pyのINSTALLED_APPSにアプリを追加し、プロジェクトのurls.pyからアプリのURLを読み込むなど、基本的な設定を行っておいてください。 実装例 まず、pyshortenersモジュールをインストールします。
-
Django WebサイトにCAPTCHA(キャプチャ)を追加する方法をわかりやすく解説
CAPTCHA(キャプチャ)は、近年のWebサイトでユーザー認証に広く使われている手法のひとつです。ボットによる不正アクセスを防ぐために非常に有効で、多くのサイトが採用しています。GoogleのreCAPTCHAを利用することもできますが、設定がやや複雑で手間がかかるのが難点です。そこで便利なのが、Djangoで使えるdjango-simple-captchaというライブラリです。これを使えば、よりシンプルにCAPTCHAを実装できます。この記事では、Django WebサイトにCAPTCHAを作成・導入する方法をステップごとに解説していきます。それでは始めましょう。実装例まずはじめに、Dja
-
Djangoで国(Country)フィールドを実装する方法|django-countriesの使い方を徹底解説
フォームやデータベースに「国」の情報を追加したい場合、CharFieldを使うこと自体は可能ですが、国名の入力ルールが曖昧になりやすく、必ずしも良い設計とは言えません。そこで便利なのが、Django向けのサードパーティパッケージ「django-countries」です。このパッケージを使えば、ISO規格に準拠した国名リストを持つ専用フィールドを簡単に実装できます。本記事では、django-countriesを使ってDjangoプロジェクトにCountryフィールドを追加する手順を、実際のコード例とともにわかりやすく解説します。事前準備:プロジェクトとアプリの作成まずはDjangoプロジェクトと
-
DjangoのDeleteViewでデータを削除する方法を実装例つきで解説
DjangoのDeleteViewとは? DeleteViewは、Djangoに標準で組み込まれている汎用クラスビューの一つで、フロントエンド(画面)からモデルのデータを削除するために使います。管理サイト(admin)のように確認画面を挟んでレコードを削除できるため、少ないコード量で安全な削除機能を実装でき、実務のプロジェクトでも非常に役立ちます。 まず、Djangoプロジェクトとアプリを作成してください。この記事では、プロジェクト名を「tutorial11」、アプリ名を「modelFormsDemo」として進めます。 基本設定 最初に基本設定を行います。settings.py の INSTA
-
Djangoのhumanizeフィルターを使ってWebサイトをより人間味のある表示にする方法
この記事では、Djangoのhumanizeフィルターとは何か、そしてDjangoプロジェクトでどのように使うのかを解説します。humanizeは、プロジェクトに「人間らしい温かみ」を加えるためのテンプレートフィルターで、Djangoが標準で提供している便利な機能のひとつです。humanizeを使うと、数値を単語(英単語)に変換したり、数字にカンマ区切りを追加したり、大きな数値を「million(百万)」や「billion(十億)」といった読みやすい単位に変換したりできます。それでは、実際の例を見ながら使い方を理解していきましょう。実装例まず、Djangoプロジェクトとアプリを作成します。1.
-
Djangoで独自のカスタムテンプレートフィルタを作成する方法
フィルタはDjango開発において非常に便利な機能です。Djangoには数多くの組み込みフィルタが用意されていますが、実は独自のカスタムフィルタを作成することもできます。一度作成すれば、プロジェクト内のどのテンプレートファイルからでも呼び出せるため、再利用性の高い処理をまとめるのに最適です。例えば、文字列を小文字から大文字に変換するといった処理も、フィルタとして簡単に実装できます。この記事では、Djangoでカスタムテンプレートフィルタタグを作成し、実際にテンプレートで使用するまでの手順を解説します。それでは始めましょう。実装例:カスタムフィルタの作成手順まず、Djangoプロジェクトとアプリ
-
【Django】django-quillを使ってテキストエディタフィールドを追加する方法
多くのオンライン試験サイトでは、テキスト入力や画像アップロードのためにテキストエディタが採用されています。中でもQuillは非常に人気の高いテキストエディタで、なんとモデルフィールドを提供しているため、特別な設定を行わなくてもデータベースに直接データを保存できます。この記事では、Djangoでテキストエディタフィールドを作成する手順を解説します。事前準備まず、Djangoプロジェクトとアプリを作成します。アプリのurls.pyを読み込むなど、基本的な設定を済ませておきましょう。また、プロジェクトおよびアプリと同じ階層にmediaフォルダを作成してください。次に、settings.pyに以下のコ