Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 29, 2014 07:25:30

Ishikawa
Зарегистрирован: 2014-04-29
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Обработчик GET и POST запросов

Здравствуйте, помогите пожалуйста, я использую ubuntu + apache + wsgi, мне нужнго по нажатию на ссылку/кнопку реализовать скрипт который бы создавал файл на сервере с соответствующим ссылке содержанием, например при нажатии на ссылку или кнопку ‘test’ на сервере создавалася бы файл test. Я знаю что это делается с помощью POST или GET запросов, но к сожалению я больше ничего не знаю, документацию с описанием всех методов wsgi я не смог найти, может быть хотябы в качестве помощи кто-нибудь поделится документацией.

Офлайн

#2 Апрель 29, 2014 08:10:24

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Обработчик GET и POST запросов

from werkzeug.wrappers import Request, Response
@Request.application
def application(request):
    if "foo" in request.args:
        print "GET ", request.args["foo"]
    return Response('<html><head></head><body><form><input name="foo"><input type="submit" value="push me"></form></body></html>',
                    mimetype="text/html"
                    )
if __name__ == '__main__':
    from werkzeug.serving import run_simple
    run_simple('localhost', 4000, application)
Запускаем этот код в консоли, запускаем браузер, идем по адресу 127.0.0.1:4000



Офлайн

#3 Апрель 29, 2014 08:52:12

Ishikawa
Зарегистрирован: 2014-04-29
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Обработчик GET и POST запросов

FishHook, когда нажимаю на push me ничего не происходит. Должно было вывестись на экран GET и значение запроса foo?

Офлайн

#4 Апрель 29, 2014 09:55:34

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Обработчик GET и POST запросов

Смотрите на консоль внизу экрана



Офлайн

#5 Апрель 29, 2014 10:56:48

Ishikawa
Зарегистрирован: 2014-04-29
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Обработчик GET и POST запросов

FishHook, а, я понял, спасибо большое, попробую!

Офлайн

#6 Апрель 30, 2014 13:02:50

Ishikawa
Зарегистрирован: 2014-04-29
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Обработчик GET и POST запросов

FishHook, не могли бы вы мне еще немного помочь, как прикрутить этот метод к моему коду. Вот как я делал, пытался внести это внутрь, но очевидно это как-то не так делается.

#!/usr/bin/python
#-*- coding: UTF-8 -*-
from werkzeug.wrappers import Request, Response
test_button = '''
<form>
        <input type = 'hidden' name = 'foo' value = 'itworks' >
        <input type = 'submit' value = 'OK'>
</form>
'''
def application(environ, start_response):
    status = '200 OK'
    response_body = test_button
    response_headers = [('Content-type', 'text/html'), ('Content-Length', str(len(response_body)))]
    start_response(status, response_headers)
    return [response_body]
def get_req(request):
    if "foo" in request.args:
        print "GET ", request.args["foo"]
    return Response('<html><head></head><body>ITWORKS</body></html>')

Отредактировано Ishikawa (Апрель 30, 2014 13:04:59)

Офлайн

#7 Апрель 30, 2014 13:15:34

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Обработчик GET и POST запросов

А как application связано с get_req, и какая из этих функций у вас юзается в качестве wsgi-приложения?



Офлайн

#8 Апрель 30, 2014 13:52:26

Ishikawa
Зарегистрирован: 2014-04-29
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Обработчик GET и POST запросов

FishHook, application это как раз wsgi приложение, get_req я как раз и хочу как-то связать, если просто вызывать его в теле application, то не работает.

Офлайн

#9 Май 1, 2014 11:17:58

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Обработчик GET и POST запросов

Вы взялись за задачу, которая Вам явно не по росту. Вы не понимаете что такое функции, зачем они нужны и как с ними работать. Почитайте для начала хоть что-нибудь по основам программирования иначе ничего не выйдет.



Офлайн

#10 Май 1, 2014 11:43:10

Ishikawa
Зарегистрирован: 2014-04-29
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Обработчик GET и POST запросов

FishHook, почему же не понимаю, я не понимаю как эти функции вызываются, что должно быть в качестве параметров. Для меня совсем не очевидно почему вообще работает application, если я его нигде не вызывал, и что у него должно быть на входе. Функция application взята с примеров из туториала по wsgi, больше там особо ничего нет и документации тоже. Пожалуйста, если вам не трудно, не могли бы вы показать как объединить все это, так чтобы у меня просто при нажатии на кнопку, которая генерируется с помощью application, выполнялось то, что вы показали, это все что мне нужно.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version