Djangoで作成したAPIとActiveReportsJSやWijmoを使用したReactアプリを連携させてみよう
メシウスの「ActiveReportsJS」「Wijmo」と「React」「Django REST framework」を組み合わせた活用例 第2回
ダウンロード サンプルファイル (387.3 KB)
本記事では、メシウスのライブラリ「ActiveReportsJS」や「Wijmo」をReactと組み合わせて構築したWebページを、Web APIと接続して活用する事例を紹介します。前回は接続対象のWeb APIをPythonのDjango REST frameworkで作成しました。今回はこのWeb APIから取得したデータをActiveReportsJSやWijmoでWebページに表示していきます。
はじめに
メシウスはHTML/CSS/JavaScriptで実装するWebページ向けに複数のライブラリを提供しています。ActiveReportsJSは帳票ライブラリ、WijmoはさまざまなUI部品を提供するライブラリです。本記事では、ActiveReportsJSやWijmoを利用して、サーバーのWeb APIから取得したデータを表示する方法を説明します。
前回記事では、サーバー側のWeb APIを、Pythonのフレームワーク「Django REST framework」で作成しました。今回はこのWeb APIからデータを取得して、ActiveReportsJSやWijmoをReactと組み合わせたWebページで表示する実装を行っていきます。
対象読者
- ActiveReportsJSやWijmoの、実利用により近いサンプルを必要としている方
- Web APIを手軽に実装したい方
- Django REST frameworkのWeb APIからデータを取得する例を知りたい方
必要な環境
前回記事で実装し、本記事で参照するWeb APIのサンプルコードは、以下の環境で動作を確認しています。環境構築の手順や実行の方法は、前回記事を参照してください。
- Windows 10 64bit版
- Python 3.11.5
- XAMPP 8.2.4
本記事で新たに実装するWebページは、以下の環境で動作を確認しています。
- Windows 10 64bit版
- Node.js v18.18.0
- React 18.2.0
- ActiveReportsJS 4.1.0
- Wijmo 5.20231.904
- Microsoft Edge 117.0.2045.47
Webページのサンプルコードを実行するには、サンプルのフォルダーで「npm install」コマンドを実行してライブラリをダウンロード後、「npm run start」コマンドを実行して、「https://localhost:3000」をWebブラウザーで表示します。
Web APIの微調整
前回記事で作成したWeb APIは「http://localhost:8000」のURLでアクセスできます。一方、今回作成するWebページのURLは「http://localhost:3000」です。このままではWebページとWeb APIのオリジン(プロトコル、ホスト、ポート番号の組)が異なるため、WebページからWeb APIにアクセスできません。このアクセスを許可するため、オリジン間リソース共有(CORS)の設定をWeb APIに行います。CORSの詳細はMozillaのページも参考にしてください。
まずPythonのパッケージマネージャーであるpipコマンドをリスト1の通り実行して、django-cors-headersパッケージをインストールします。
pip install django-cors-headers
次にsettings.pyにdjango-cors-headersの設定をリスト2の通り記述します。
INSTALLED_APPS = [
(略)
'corsheaders', #...(1)
]
MIDDLEWARE = [
(略)
'corsheaders.middleware.CorsMiddleware', #...(2)
]
# CORSを有効にするオリジン ...(3)
CORS_ORIGIN_WHITELIST = [
'http://localhost:3000',
]
INSTALLED_APPS(1)、MIDDLEWARE(2)に、それぞれdjango-cors-headersの設定を追加します。また、CORSを有効にするオリジンを表す(3)のCORS_ORIGIN_WHITELIST項目を追加して、Web APIへのアクセスを許可するWebページのオリジン「http://localhost:3000」を設定します。
以上の設定により、Django REST frameworkで作成したWeb APIに、今回作成するWebページからアクセスできるようになります。
この記事は参考になりましたか?
- ComponentZine(ActiveReports)byメシウス連載記事一覧
- この記事の著者
-
WINGSプロジェクト 吉川 英一(ヨシカワ エイイチ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
提供:メシウス株式会社
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア
