从 wtforms 获取数据
Getting Data from wtforms
我一直在尝试使用 word2vec 和 gensim 作为其 python 实现。现在我必须让我的模型可以在网站上访问 - 所以我需要 Flask。我在 forms.py 中定义了一个表单:
from wtforms Import Form, StringField, SubmitField, validators
class msForm(Form):
ms_1 = StringField(label='Eingabe_1', default = 'king', validators=[validators.input_required()])
ms_2 = StringField(label='Eingabe_2', default = 'man', validators=[validators.input_required()])
ms_3 = StringField(label='Eingabe_3', default = 'queen', validators=[validators.input_required()])
submit=SubmitField()
现在我的 views.py 看起来像:
from app import app
from .forms import msForm
from flask import render_template, flash, request
from gensim.models import word2vec
global model
model = word2vec.Word2Vec.load_word2vec_format('./app/static/GoT.model.vector', binary=True)
global form
form = msForm()
@app.route('/')
def index():
return render_template('my-form.html', form=form)
@app.route('/', methods=['POST'])
def msForm_post():
text1 = form.ms_1.data
text2 = form.ms_2.data
text3 = form.ms_3.data
processed_text = model.most_similar(positive=[text3, text2], negative = [text1])
return processed_text[0][0]
当我执行 run.py 时,转到 http://localhost:5000/,更改我的输入并单击 'Submit' 按钮,我只在默认输入上得到答案。他为什么不发送我的输入?
感谢您的帮助,对不起我的英语,
FFoDWindow
实例化视图中的表单,而不是作为一个全局的。您一遍又一遍地使用相同的表单实例,而该实例是在没有任何表单数据的情况下创建的。您可以在一个视图中将 GET 和 POST 分组。
@app.route('/')
def index():
form = msForm(request.form)
# request.form not needed when using Flask-WTF
if request.method == 'POST' and form.validate():
processed_text = model.most_similar(positive=[form.ms_3.data, form.ms_2.data], negative=[form.ms_1.data])
return processed_text[0][0]
return render_template('my-form.html', form=form)
我一直在尝试使用 word2vec 和 gensim 作为其 python 实现。现在我必须让我的模型可以在网站上访问 - 所以我需要 Flask。我在 forms.py 中定义了一个表单:
from wtforms Import Form, StringField, SubmitField, validators
class msForm(Form):
ms_1 = StringField(label='Eingabe_1', default = 'king', validators=[validators.input_required()])
ms_2 = StringField(label='Eingabe_2', default = 'man', validators=[validators.input_required()])
ms_3 = StringField(label='Eingabe_3', default = 'queen', validators=[validators.input_required()])
submit=SubmitField()
现在我的 views.py 看起来像:
from app import app
from .forms import msForm
from flask import render_template, flash, request
from gensim.models import word2vec
global model
model = word2vec.Word2Vec.load_word2vec_format('./app/static/GoT.model.vector', binary=True)
global form
form = msForm()
@app.route('/')
def index():
return render_template('my-form.html', form=form)
@app.route('/', methods=['POST'])
def msForm_post():
text1 = form.ms_1.data
text2 = form.ms_2.data
text3 = form.ms_3.data
processed_text = model.most_similar(positive=[text3, text2], negative = [text1])
return processed_text[0][0]
当我执行 run.py 时,转到 http://localhost:5000/,更改我的输入并单击 'Submit' 按钮,我只在默认输入上得到答案。他为什么不发送我的输入?
感谢您的帮助,对不起我的英语, FFoDWindow
实例化视图中的表单,而不是作为一个全局的。您一遍又一遍地使用相同的表单实例,而该实例是在没有任何表单数据的情况下创建的。您可以在一个视图中将 GET 和 POST 分组。
@app.route('/')
def index():
form = msForm(request.form)
# request.form not needed when using Flask-WTF
if request.method == 'POST' and form.validate():
processed_text = model.most_similar(positive=[form.ms_3.data, form.ms_2.data], negative=[form.ms_1.data])
return processed_text[0][0]
return render_template('my-form.html', form=form)