Передать значение из HTML в Python с помощью Flask - PullRequest
0 голосов
/ 08 сентября 2018

Поэтому я использую Flask в качестве микро-фреймворка, а в одном из моих шаблонов я использую следующую таблицу:

<table id = "productentabel" width = "auto" class="table table-striped b-t b-b">
<thead>
<tr class = "header">
<th>Name</th>
<th>Url</th>
</thead>
{% for file in all_files['files'] %}
{% if file['mimeType'] == 'application/vnd.google-apps.document'  %}
<TR>
<TD  width="auto" >{{file['name']}}</TD> 
<td><a class="btn btn-xs white" href = "https://docs.google.com/document/d/{{file['id']}}" target ="_blank">Go to file</a></td>
<td><form method=POST action="delete_file"><input type=submit name="delete" value ="{{file['id']}}" class="btn btn-xs white">Delete file</input>
</form></td>
</TR>
{% endif %}
{% endfor %}
</tr> 
</table> 

Мой вопрос касается следующего HTML-кода:

<form method=POST action="delete_file"><input type=submit name="delete" value ="{{file['id']}}" class="btn btn-xs white">Delete file</input>
</form>

Как вы можете видеть, я пытаюсь передать значение в свой код Python, когда на входе сделан щелчок. Значение передается в мой код Python, но теперь это значение видно во внешнем интерфейсе, поэтому оно выглядит так:

1svpTERHaYd-wSpFBRRRjp1TOj0H-FH4_66H2W1OLY Удалить файл

Но я хочу, чтобы это было так:

Удалить файл

В Python я делаю следующее, чтобы извлечь значение:

fileid = request.form.get('delete')

Я тоже пробовал что-то вроде этого:

<form method=POST action="delete_file"><input type=submit name="{{file['id']" class="btn btn-xs white">Delete file</input>
    </form>

Но я на самом деле не знаю, как тогда я могу извлечь имя в своем коде Python, потому что мне нужно только передать file['id'], и ценностное решение сработало для меня, но это не идеальное решение.

1 Ответ

0 голосов
/ 08 сентября 2018

Вместо POST попробуйте метод GET, например:

<td><form method="get" action="delete_file?file_name={{file['id']}}"><input type="submit" name="delete" value ="Delete file" class="btn btn-xs white"/></td>

Если вам нужен метод POST, вы должны отправить имя файла через ввод с типом hidden.

<td><form method="post" action="delete_file"><input type="submit" name="delete" value ="Delete file" class="btn btn-xs white"/><input type="hidden" name="file_id" value="{{file['id']}}" /></td>

В этом случае вы получите идентификатор файла, подобный следующему:

fileid = request.form.get('file_id')

Кстати: большая часть вашего HTML-кода недействительна, вам действительно стоит посмотреть руководство по этому вопросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...