Проблема обработки форм Python - PullRequest
1 голос
/ 11 августа 2011

Я новичок.Я хотел знать, как обрабатывать поля на основе массива в 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>

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

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

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

Спасибо.

1 Ответ

0 голосов
/ 11 августа 2011

Я не думаю, что cgi.FieldStorage имеет метод, аналогичный тому, который вы описываете в php.Тем не менее, вы можете написать что-то вроде этого, чтобы выполнить то же самое, учитывая формат name [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']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...