我最近偶然发现了 XForms(W3C 1.1,ODK XForms),我很难了解它们是如何使用的(如果它们仍在使用的话)。
SO标签页说:
XForms 是一种 XML 格式,它为 XML 数据指定数据处理模型和用户界面。例如。网络表格。
现在我查看了 W3C 示例,但没有看到任何类型的用户界面。它只是在那里显示的 XML。
我所做的
当我想在 Web 中创建一个表单时,我必须从侧面着手:前端和后端。前端要么直接使用<form> / <input> /
HTML 元素和 CSS 编写样式,要么使用flask-wtf 之类的包生成这些元素。
后端侦听 GET / POST HTTP 请求以接收表单。
问题
我有很多初学者的问题。我的主要问题是如何使用 XForms?. 一个最小的 Python 示例对我来说最有价值。也许像注册表这样简单的东西:用户名字段、密码字段和密码确认字段可以显示这一点。
我会像这样创建 HTML:
<form action="" method="POST">
<label for="username">Username</label>
<input type="text" name="username" id="username" />
<label for="pw">Password</label>
<input type="password" name="pw" id="pw" />
<label for="pw2">Confirmation</label>
<input type="password" name="pw2" id="pw2" />
<input type="submit" />
</form>
使用Flask,后端可能如下所示:
# Third party modules
from flask import redirect, url_for, render_template
from flask_login import current_user
from flask_wtf import FlaskForm
from wtforms import PasswordField, StringField, SubmitField
# First party modules
from my_db_models import User
class LoginForm(FlaskForm):
email = StringField("Email")
password = PasswordField("Password")
submit = SubmitField("Log In")
@auth.route("/login", methods=["GET", "POST"])
def login():
if current_user.is_authenticated:
return redirect(url_for("main.index"))
form = LoginForm()
if form.validate_on_submit():
user = User.query.filter_by(username=form.username.data).first()
if user is None or not user.check_password(form.password.data):
flash(INVALID_EMAIL_OR_PASSWORD, "error")
return redirect(url_for("auth.login"))
login_user(user, remember=form.remember_me.data)
return redirect(url_for("index"))
return render_template("login.html", form=form)
使用 XForms 会怎样?XForms 的典型用例到底在哪里?它们有什么可比性?XForms 是否只在 Java 中使用?(我见过 Python 包,但从未听说过)