このサイトについて

みんなのPython Webアプリ編 - 機能拡張のためのヒント

みんなのPython Webアプリ編 - 機能拡張のためのヒント

機能拡張のためのヒント

RSSリーダーの機能はほぼ完成しました。最初に作ったRSSリーダーはフォームが1つだけあるとても単純なものでした。ページを進めるにつれ、少しずつより新しい開発手法を取り入れ、機能拡張をしてきました。新しい機能を実装しつつ、コードの量はあまり増えていません。処理の内容を抽象化し、共通部分を抜き出すことで、開発を効率化してきたおかげと言えます。

ほぼ完成しているRSSリーダーも、まだ機能追加の余地があります。読者の皆さん自身の勉強として、以下のような機能追加をしてみてはいかがでしょうか。

ユーザ登録機能

ユーザ認証に必要な情報をデータベースに保存し、データベースの内容を使ってユーザ認証を行う機能を追加すると,RSSリーダーはずっと使いやすくなるはずです。ユーザの認証はauthentication.pyのchecklogin()という関数で行っています。この関数を書き換え、データベースの内容を参照するようにすることになります。また、ユーザ登録、内容を編集するためのフォームと遷移一式が必要になります。

データベースに保存する情報としては,登録時に,ユーザIDとパスワードを保存したくなるかも知れません。しかし,生のユーザ名とパスワードを,データベースを管理できる立場にある人間に見られてしまうようなサービスでは,多くの人が気軽に登録して貰えなくなってしまうかも知れません。データベースには,認証時に使う,ユーザ名とパスワードから生成したハッシュ値のみを保存するのがスマートな方法です。

RSSの内容をデータベースに登録する

現状のRSSリーダーでは、RSSを表示しようとするたびにRSSを読み込んでいます。このような仕様だと、RSSの読み込みに時間がかかりますし、RSSを配信しているサーバに余計な付加をかけることになります。読み込んだ内容をデータベースに登録しておき、一定時間経つと再度RSSを読みに行く、という実装の方がスマートと言えます。

このような機能を実装するためには、まずRSSのデータを登録するような仕組みを作る必要があります。RSS表示時にはデータベースに登録された内容を利用します。また、最後にRSSを読み込んだ時間をどこかに保存しておくとよいでしょう。

2014-09-03 15:00