Опция 1:
Переменная, созданная и обновленная внутри функции, существует только для этой функции.
Из документации Python ...
"Если переменной присваивается значение где-либо в теле функции, оно считается локальным, если явно не объявлено как глобальное."
Решение:
Создать q
как переменную вне функций , таким образом, оно не просто захвачено внутри функции home
, но вместо этого теперь универсально доступно для всех без исключения функций.Любая функция может использовать или обновить такую переменную.
Опция 2:
В качестве альтернативы, вы можете просто попробовать передать q
в качестве параметра функции .
В приведенном ниже примере вы вызовете функцию search
, но с добавленным параметром q
.Сама функция search
будет ссылаться на тот же q
как на вещь, называемую input
(или выбрать ваше собственное имя / слово).
@app.route("/",methods=['GET','POST'])
def home():
result = Mylist.query.all()
q = request.form.get("q")
search( q )
return render_template('index.html',result=result)
@app.route("/search.html")
def search( input ):
d = input
var='%'+d+'%'
result = Mylist.query.filter(Mylist.type.like(var)
return render_template('search.html',result=result)