
FileMakerエンジニア

本日は、少し専門的な内容に踏み込んでみたいと思います。
この機能は実際の案件で使用した事例をもとに、PythonのWebフレームワーク「Django」を使って、FileMaker(ファイルメーカー)とWebアプリケーションを連携させる方法をご紹介します。
具体的には、Django上でログイン機能を実装し、その認証情報をFileMakerのデータベースと連携させる仕組みを構築していきます。
少し専門的な内容となるため何回かに分けて投稿させていただきます。
目次
Djangoとは?
Django(ジャンゴ)はもともと更新の多いニュースサイトの管理を効率化をするために開発されたフレームワークです。
シンプルでわかりやすい構文(ソースコード)と必要な機能があらかじめ用意された「Batteries Included」思考で開発されており初心者から、プロの開発者まで幅広く使われています。
MTVモデル
DjangoはMTVモデルという独自の設計パターンを採用しており、開発を効率的に進めることができます。
MTVとはModel-Template-Viewの略になります。
Model
Modelは、データベースの構造やデータの扱いを担当する部分です。
例えば、ユーザや商品、記事など、アプリで使用するデータの種類(テキストや数字)やルール(必須項目かどうかなど)をこのModel部分で定義します。
Template
Templateは、ユーザに表示されるHTMLのデザインやレイアウトを担当する部分です。
いわゆる「見た目」の部分で、Django独自のテンプレート言語(Django Template Language)を使って、変数を埋め込んだり、条件分岐や繰り返し処理を行うことができます。
View
Viewは、ビジネスロジックや画面遷移の処理を担当する部分です。
ユーザからのリクエストを受け取り、Modelから必要なデータを取得し、TemplateからHTMLを選択しModelのデータを入れレスポンスを返す、という流れを制御します。
セキュリティ
Djangoは、Webアプリケーションのセキュリティを強く意識して設計されており、多くの一般的な脆弱性に対する対策が最初から組み込まれています。
特別な設定をしなくても、自動的にリスクを軽減してくれるため、安全なWebアプリを構築することが可能です。
セキュリティは、普段ユーザや非開発者があまり意識することは少ないかもしれませんがWebアプリを開発する立場にある私たちは、常にさまざまな脆弱性を意識しながら設計・実装を行う必要があります。
ちょっとした油断が、大きな情報漏洩やシステムの乗っ取りといった重大な問題につながることもあるため、セキュリティ対策は欠かせない要素です。
今回は詳しく解説しないですがDjangoには以下のようなセキュリティ対策があります。
- SQLインジェクション対策
- CSRF(クロスサイトリクエストフォージェリ)対策
- XSS(クロスサイトスクリプティング)対策
- パスワードのハッシュ化
- セッション管理とCookieの安全性
FileMaker Data API
FileMaker Data APIに関しては前回解説しておりますので以下の記事を見てみてください。
実装
それでは、ログイン機能の実装手順を紹介します。
環境構築などに関しては既に完了していることが前提となります。
プロジェクト作成、設定
作成
Djangoでは、開発を「プロジェクト」という大きな単位で構成し、その中に複数の「アプリ」を組み込む形で開発を進めていきます。
プロジェクトは全体の土台や設定を担い、アプリはそれぞれ特定の機能や役割を持った小さな単位として設計されます。
プロジェクトは、以下のコマンドといわれるもので作成できます。

projectは任意の名前に変更が可能です。
例えば、今回はログイン機能だけを作成するのでfilemakerLoginのようなプロジェクト名に変更ができます。
設定
プロジェクトを作成したら次は生成されたprojectディレクトリの中にsettings.pyがありますので開いて言語とタイムゾーンを変更します。
今回は日本で設定いたします。

アプリ作成、設定
作成
次にアプリを作成します。
Djangoはプロジェクトの中のアプリを使用し開発をします。
基本的に1アプリ1機能として扱うことが多く、ログイン機能や日報などで大きく分けてアプリにします。
今回はログイン機能用にaccounts、ログイン後の画面にappというアプリを作成します。
アプリは以下のコマンドで作成できます。


設定
追加したアプリはプロジェクトに教えてあげないといけないので、先ほどのsettings.pyのINSTALLED_APPSに追加します。

app.apps.AppConfigとaccounts.apps.AccountsConfigというのが作成したアプリになります。
まとめ
これで下準備ができましたので次回はFileMaker Data APIを構築していきたいと思います。
PythonではどのようにFileMaker Data APIを叩けばいいのか、ログイン時に必要な情報など解説いたします。
また、Djangoのログインを使用するため、どのように連携しているかも解説していきます。
また、株式会社ブリエでは、FileMakerを活用したシステム開発や運用支援を行っています。
業務システムのセキュリティについてのご相談もお気軽にお問い合わせください。

多岐にわたる業種での経験を経て、現在はFileMakerを中心に活躍中のエンジニアです。ローコード開発を得意としながらも、Django、React、Flutterなどの技術にも挑戦し、幅広い開発スキルを習得。常に自分の技術を磨き、より良いソリューションを提供できるよう、継続的にスキルアップを図っています。多彩な技術を駆使して、クライアントのニーズに応える柔軟性と、迅速かつ効果的な開発力が強みです。