3

最近、Flask を使用する Python プロジェクトを作成しました。Flask では、フォームとビューは 2 つの.pyファイルで定義され、テンプレート HTML で使用されます。

これが私のforms.py

from flask.ext.wtf import Form
from wtforms import StringField, SubmitField
from wtforms.validators import Required

class NameForm(Form):
    name = StringField('What is your name?', validators=[Required()])
    submit = SubmitField('Submit')

ここに私の意見があります ( views.py)

from flask import render_template, session, redirect, url_for,     current_app
from .. import db, smk
from ..models import User
from ..email import send_email
from . import main
from .forms import NameForm

@main.route('/', methods=['GET', 'POST'])
def index():
    form = NameForm()
    if form.validate_on_submit():
        user = User.query.filter_by(username=form.name.data).first()
        if user is None:
            user = User(username=form.name.data)
            db.session.add(user)
            session['known'] = False
            if current_app.config['FLASKY_ADMIN']:
                send_email(current_app.config['FLASKY_ADMIN'], 'New User','mail/new_user', user=user)
        else:
            session['known'] = True
        session['name'] = form.name.data
        return redirect(url_for('.index'))
    return render_template('index.html',form=form, name=session.get('name'),known=session.get('known', False))

これが私のテンプレートです ( index.html)

{% extends "base.html" %}
{% import "bootstrap/wtf.html" as wtf %}

{% block title %}Flasky{% endblock %}

{% block page_content %}
<div class="page-header">
    <h1>Hello, {% if name %}{{ name }}{% else %}Stranger{% endif %}!</h1>
    {% if not known %}
    <p>Pleased to meet you!</p>
    {% else %}
    <p>Happy to see you again!</p>
    {% endif %}
</div>
{{ wtf.quick_form(form) }}
{% endblock %}

そして今、テーブルリストフォームを作成する必要があり、それはMySQLデータベースからクエリされ、次のようなチェックボックスも必要です:

selectall| id   | name    | value     
------------------------------------
checkbox | 1     | name1  | test1
------------------------------------
checkbox | 2     | name2  | test2
------------------------------------
checkbox | 3     | name3  | test3

submitbutton

「すべて選択」をクリックすると、すべてのアイテムが選択またはキャンセルされ、特定のアイテムのチェックボックスをクリックするとアイテムが選択されます。次に送信ボタンをクリックすると、選択したアイテムが条件として関連するデータベース アイテムが更新されます。

また、クエリの内容は固定ではありません。一部のテーブルには 4 つの列が含まれ、一部のテーブルには 7 つまたはその他の数の列が含まれています。テーブル リストを動的に作成する必要があります。

フラスコforms.pyでは、最初にテーブルリストを作成する方法と.html、それがどのように呼び出されるかがわかりません。その後、動的に作成するにはどうすればよいですか? チェックボックスはテーブルリスト形式でどのように機能しますか?

4

0 に答える 0