#python #jquery #flask #autocomplete
Вопрос:
поэтому я пытаюсь выполнить автозаполнение с помощью Flask и jQuery, но он продолжает выдавать мне ошибку. (пытаюсь интегрировать эту функцию в мой чат-бот с часто задаваемыми вопросами, чтобы пользователи могли просматривать предложения по поиску)
вот коды:
app.py
from flask import Flask, Response, render_template, request import json app = Flask(__name__) import wtforms as wt from flask_wtf import FlaskForm from flask_wtf import Form from wtforms import StringField, validators from wtforms import BooleanField, TextAreaField from wtforms.validators import ValidationError, DataRequired texts=["hi","hello","hey","hi there"] class SearchForm(Form): autocomp= StringField('autocomp',id='autocomplete') @app.route('/autocomplete',methods=['GET']) def autocomplete(): search = request.args.get('autocomplete') app.logger.debug(search) return Response(json.dumps(texts), mimetype='application/json') @app.route('/',methods=['GET','POST']) def index(): form = SearchForm(request.form) return render_template("search.html",form=form) if __name__ == '__main__': app.run()
search.html
lt;htmlgt; lt;headgt; lt;meta charset="utf-8"gt; lt;link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css"gt; lt;script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"gt;lt;/scriptgt; lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/jquery-ui.js"gt;lt;/scriptgt; lt;/headgt; {{ form.autocomp.label }}: {{ form.autocomp }} lt;scriptgt; $(function() { $.ajax({ url: '{{ url_for("autocomplete") }}' }).done(function (data) { $('#autocomplete').autocomplete({ source: data, minLength: 2 }); }); }); lt;/scriptgt; lt;/htmlgt;
это была ошибка, которую я получил:
File "C:UsersUseranaconda3envsautocompletelibsite-packageswtformsform.py", line 268, in __init__ super(Form, self).__init__(self._unbound_fields, meta=meta_obj, prefix=prefix) TypeError: super(type, obj): obj must be an instance or subtype of type
как мне исправить эту ошибку?