ORM のようなものがここで役に立ちます。Django フレームワークの例を示します。特にこれを使用する必要があると言っているわけではありませんが、そのチュートリアルは概念をうまく説明しています。
それが私たちのモデルクラスです:
from django.db import models
class Poll(models.Model):
question = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published)
次の DB クエリが生成されます。
BEGIN;
CREATE TABLE "polls_poll" (
"id" integer NOT NULL PRIMARY KEY,
"question" varchar(200) NOT NULL,
"pub_date" datetime NOT NULL
);
COMMIT;
次に、すべての投票を簡単に表示できます。
class IndexView(generic.ListView):
model = Poll # specifies model
template_name = 'polls/index.html' # specifies HTML template
テンプレートは次のようになります。
{% if latest_poll_list %}
<ul>
{% for poll in latest_poll_list %}
<li><a href="/polls/{{ poll.id }}/">{{ poll.question }}</a></li>
{% endfor %}
</ul>
{% else %}
<p>No polls are available.</p>
{% endif %}
代わりに、自動フィールド反復を使用して、入力のデータを表示できます。Django は、データのタイプに一致する適切なタイプの入力を自動的に選択します。
これで、フィールドをPoll
クラスに追加すると、データベースの作成および抽出クエリに自動的に反映され、新しく追加されたフィールドがフォームに組み込まれます。
もちろん、フレームワークが異なれば動作もわずかに異なるため、使用する前に確認する必要があります。それらのすべては通常、問題を解決するためのツールを提供し、一般的なソリューションでは不十分なところを微調整します。