Проблема обработки форм Python

1

Я новичок. Я хотел бы знать, как обрабатывать массивы на основе массива в CGI?

<form name="frmLogin" method="get" action="">
Username: <input type="text" name="login[username]" /><br/>
Password: <input type="password" name="login[password]" /><br/>
<input type="submit" name="login[submit]" />
</form>

У меня есть такая форма, как выше. Как я могу получить поле входа в качестве словаря, где ключи будут именем пользователя, паролем, отправляют с соответствующими значениями.

я могу получить отдельно это => form ["login [username]"]. значение, но что, если я не знаю ключ, т.е. флажок [] Нужно ли обрабатывать сообщения и манипулировать с помощью ручного кодирования или есть какой-либо другой способ сделать это?

в php $ _GET ['login'] даст мне массив определенной пары значений ключа, мне нужно что-то подобное.

Благодарю.

  • 0
    Не могли бы вы объяснить, зачем вам это нужно? Из предоставленного вами примера login[xxx] в login[xxx] я не вижу разницы между предлагаемой form["login"]["username"] и доступной form["login[username]"] или, что лучше, form["login_username"] .
Теги:
cgi

1 ответ

0

Я не думаю, что cgi.FieldStorage имеет аналогичный метод, как тот, который вы описываете в php. Однако вы можете написать что-то подобное, чтобы выполнить одно и то же, учитывая имя [attr], которое у вас есть на именах полей:

def get(form, prefix):
    output = {}
    def parse(key):
        name = key.split('[')[1].rstrip(']')
        output[name] = form[key]
    map(parse, [key for key in form.keys() if key.startswith(prefix)]
    return output

Итак, ваш в cgi выглядел примерно так:

form = cgi.FieldStorage()
login_info = get(form, 'login')
print login_info['username']
print login_info['password']
  • 0
    Спасибо знак, я думаю то же самое после поиска некоторое время. Просто было бы замечательно убедиться, что для этого нет встроенного.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню