像 ORM 这样的东西在这里会有所帮助。我会给你一个来自Django 框架的例子。我并不是说你应该特别使用这个,但它的教程很好地说明了这个概念。
那是我们的模型类:
from django.db import models
class Poll(models.Model):
question = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published)
它生成这个数据库查询:
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
类时,它会自动传播到数据库创建和提取查询,并且表单会合并新添加的字段。
当然,不同的框架的行为略有不同,因此您需要在使用前查看它们。它们通常都会为您提供解决问题的工具,并在通用解决方案不够用的地方进行调整。