機能拡張のためのヒント
RSSリーダーの機能はほぼ完成しました。最初に作ったRSSリーダーはフォームが1つだけあるとても単純なものでした。ページを進めるにつれ、少しずつより新しい開発手法を取り入れ、機能拡張をしてきました。新しい機能を実装しつつ、コードの量はあまり増えていません。処理の内容を抽象化し、共通部分を抜き出すことで、開発を効率化してきたおかげと言えます。
ほぼ完成しているRSSリーダーも、まだ機能追加の余地があります。読者の皆さん自身の勉強として、以下のような機能追加をしてみてはいかがでしょうか。
ユーザ登録機能
ユーザ認証に必要な情報をデータベースに保存し、データベースの内容を使ってユーザ認証を行う機能を追加すると,RSSリーダーはずっと使いやすくなるはずです。ユーザの認証はauthentication.pyのchecklogin()という関数で行っています。この関数を書き換え、データベースの内容を参照するようにすることになります。また、ユーザ登録、内容を編集するためのフォームと遷移一式が必要になります。
データベースに保存する情報としては,登録時に,ユーザIDとパスワードを保存したくなるかも知れません。しかし,生のユーザ名とパスワードを,データベースを管理できる立場にある人間に見られてしまうようなサービスでは,多くの人が気軽に登録して貰えなくなってしまうかも知れません。データベースには,認証時に使う,ユーザ名とパスワードから生成したハッシュ値のみを保存するのがスマートな方法です。
RSSの内容をデータベースに登録する
現状のRSSリーダーでは、RSSを表示しようとするたびにRSSを読み込んでいます。このような仕様だと、RSSの読み込みに時間がかかりますし、RSSを配信しているサーバに余計な付加をかけることになります。読み込んだ内容をデータベースに登録しておき、一定時間経つと再度RSSを読みに行く、という実装の方がスマートと言えます。
このような機能を実装するためには、まずRSSのデータを登録するような仕組みを作る必要があります。RSS表示時にはデータベースに登録された内容を利用します。また、最後にRSSを読み込んだ時間をどこかに保存しておくとよいでしょう。