2

最近、XForms ( W3C 1.1ODK 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 パッケージは見たことはありますが、聞いたことはありません)

4

4 に答える 4