используя двоеточие в строке в Python - PullRequest
1 голос
/ 04 ноября 2010

Я использую Python 2.6.5 для разработки приложения для Google App Engine - я не слишком знаком с Python, но я учусь.

Я пытаюсь поместить URL в строку, так что переменная = "string http://domain.name"

тогда я распечатаю строку. проблема в том, что если в строке находится двоеточие (после http), я не получаю никакого вывода и не знаю почему.

Я пытался экранировать строку с:

ни один из них, похоже, не работает, и я не уверен, что еще попробовать

Контекст выглядит так

variables.py:

...
HOST_URL = "http://domain.name"
...

пример logout.py

import variables
import sys

...

class Logout(webapp.RequestHandler):
    """ RequestHandler for when a user wishes to logout from the system."""
    def post(self):
        self.get()

    def get(self):
        print(variables.HOST_URL)
        print('hi')
        self.redirect(variables.HOST_URL)
        sys.exit()

или

в файле functions.py

import variables
import sys

...

def sendhome(requesthandler)
    print 'go to '+variables.HOST_URL
    requesthandler.redirect(variables.HOST_URL)
    sys.exit()

вызывается из контекста, например:

from functions import sendhome

...

class Logout(webapp.RequestHandler):
    """ RequestHandler for when a user wishes to logout from the system."""
    def post(self):
        self.get()

    def get(self):
        sendhome(self)

любая помощь будет оценена

спасибо

Ответы [ 2 ]

7 голосов
/ 04 ноября 2010

Если я не ужасно ошибаюсь, GAE использует WSGI, вы не просто печатаете вещи, вы должны вернуть правильный объект ответа HTTP (это не PHP).

Я предполагаю, что если вы зайдете на страницу с помощью firefox + firebug и посмотрите на заголовок network->, вы увидите, что браузер принимает http: как заголовок HTTP со значением "//domain.name".

Отредактировано: Кстати, не следует ли использовать «self.response.out.write» вместо «print»?

0 голосов
/ 04 ноября 2010

Проблема была в sys.exit () после вызова печати или перенаправления

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