Я создаю веб-сервис, чтобы люди могли искать в базе данных. Допустим, у меня есть пользователи и компании. Каждый пользователь и компания могут найти свой идентификатор. Поэтому, если вы ищете myurl/users/<id>
, вы получаете информацию об этом пользователе, с другой стороны, если вы ищете компанию/вы получаете информацию об этой компании. Для этого я создал два простых ввода текста (один для пользователей и другой для компаний), где люди могут ввести <id>
. Моя проблема в том, что когда я получаю значение от входного текста, я получаю это myrul/users?<id>
, а не myurl/users/id
. Я попытался сделать hardcode косой чертой, но затем получаю myrul/users/?<id>
. Итак, мой вопрос заключается в том, как получить входной текст как URL-адрес, а не как переменную.получить форму ввода не как переменную, но как url
Я использую флягу так что мой HTML имеет jinja2 код вроде этого:
<!-- USER id -->
<form method='GET' action={{url_for('get_info_by_id', type_collection='user')}}>
<input type="text" name="my_id"/><input type="submit" value="Go">
</form>
<!-- COMPANY id-->
<form method='GET' action={{url_for('get_info_by_id', type_collection='company')}}>
<input type="text" name="my_id"/><input type="submit" value="Go">
</form>
В моем питон скрипт (опоки)
@app.route('myurl/<type_collection>/<my_id>')
get_info_by_id(type_collection,my_id):
# search into the database and return info about that id
Если yo u хотите, чтобы переменные формы размещались внутри URL-адреса, а не строка запроса или тело сообщения, вам нужно использовать JavaScript для захвата события отправки формы и перехода к новому URL-адресу. – dirn
@dirn правильно, однако посмотрите на мой ответ, если вы просто пытаетесь получить форму для поиска в базе данных и возврата своих объектов. – dkhamrick
Пойду через JavaScript, спасибо. – Dovi