У меня есть этот код Python, который должен взять данные из html-формы и использовать их в предложении WHERE:
@app.route('/search', methods=['GET'])
def search():
connect = cx_Oracle.connect("benjamin", "siliyetu", "PRINCE-PC/XE")
cursor = connect.cursor()
searched = request.form['search']
named_params = {'search':searched}
query = cursor.execute("SELECT * FROM edited WHERE REGEXP_LIKE (cod_ed,
:search) OR REGEXP_LIKE (nome_ed,:search) OR
REGEXP_LIKE (endereco,:search) OR REGEXP_LIKE
(telefone,:search) OR REGEXP_LIKE
(cidade,:search)", named_params)
results = cursor.fetchall()
posts = list(results)
return render_template('search.html', posts=posts)
, и шаблон, который я использую, является этим (в любом случае, частью шаблона.Это не все):
<form method="POST" action="/editora" class="form-outline" >
<div class="col-lg-7 col-offset-6 right">
<div class="form-group mx-lg-3 mb-2">
<label for="element-7" ></label>
<input id="search" name="search" type="text" class="form-control" placeholder="Pesquisar..." />
<label></label>
<a class="btn btn-primary " type="submit" href="search">Pesquisa</a>
Когда я пытаюсь использовать данные из формы, это дает мне
werkzeug.exceptions.HTTPException.wrap.<locals>.newcls: 400 Bad Request: KeyError: 'search'
Но когда я вводю данные с помощью input (), этоработает отлично.Что дает!?
Как бы я решил эту проблему?Я также хочу добавить несколько регулярных выражений в предложении where, но это не связано.Как мне это тоже сделать?
Ps - я работаю с oracle express edition 11g