2014-01-03 3 views
-1

Я занимаюсь веб-приложением, и я не могу получить значение даты из браузера. Я выбрал дату 01/16/2014.Извлечь данные из браузера

Строка запроса выглядит следующим образом:

?dd=01%2F16%2F2014 

и мой код:

from django.http import HttpResponse, HttpResponseNotFound 
import cgi, cgitb 

form = cgi.FieldStorage() 
def pod_available(request): 
    dat = form.getvalue('dd') 
    print dat 
    return HttpResponse("<html><body>Hello<em>" + str(dat) + "</em></body></html>") 

Выход:

HelloNone 
+0

Что вызывает 'pod_available'? Какой тип объекта «запрос»? –

+0

да его объект запроса. Его веб-приложение python. – JJJ

+1

Но скрипты 'cgi' не содержат ** объекта' request' и не имеют класса 'HttpResponse()'. Вы не передали весь свой код; откуда берутся 'request' и' HttpResponse'? –

ответ

1

Если это приложение Django, то с помощью CGI в любой путь абсолютно не имеет смысла. Я предполагаю, что pod_available вызывается с переданным ему объектом HttpRequest, поэтому, если вы хотите прочитать данные запроса, вам нужно получить доступ к этому объекту, чтобы его получить.

Вы можете сделать это путем доступа к их кнопочная 'dd' в этом случае-объекта:

def pod_available(request): 
    dat = request['dd'] 
    return HttpResponse("<html><body>Hello<em>" + str(dat) + "</em></body></html>") 

В любом случае, это не приложение CGI, так что не использовать любой CGI материал там ,

+0

yes .. Мне нужно значение dd из HTTP-запроса. – JJJ

+0

@NikunjGami Uhm, так ... это работает, когда вы выполняете 'request.getvalue ('dd')' вместо 'form.getvalue ('dd')'? – poke

+0

Nop это не так. – JJJ

2

Если вы строите приложение Django, вы не используете CGI. Переменная forms будет заполнена только и навсегда останется пустой. Вы также можете удалить модули cgi и cgitb, они вам бесполезны.

Вам необходимо перечитать Django tutorial; параметр на ваш взгляд request содержит все переменные формы:

def pod_available(request): 
    dat = request.GET['dd'] 
    print dat 
    return HttpResponse("<html><body>Hello<em>" + str(dat) + "</em></body></html>") 

request.GET object является словарем проведение параметры запроса, передаваемой в через URL.

+0

О, дорогая ... я просто не согласен с двумя приложениями .. Спасибо, что напоминает мне. – JJJ

Смежные вопросы