2010-11-03 125 views
1

我使用python 2.6.5來開發一個應用程序的谷歌應用程序引擎 - 我不太熟悉python,但我正在學習。在python中使用冒號在一個字符串中

我試圖把一個URL到一個字符串變量等等=「字符串http://domain.name

然後我打印串出。問題是,如果冒號(http後面)在字符串中,我沒有得到任何輸出,我不知道爲什麼。

我試着逃避字符串:

  • 「」 「http://domain.name」 「」
  • R 「http://domain.name」
  • 「HTTP \://domain.name」
  • 「HTTP \://domain.name」
  • 「HTTP \\://domain.name」
  • 「HTTP :: //domain.name」

他們都不工作,我不知道什麼嘗試

的背景是,像這樣

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() 

在文件f

unctions.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) 

任何幫助,將

感謝

+4

請顯示一些上下文。 – 2010-11-03 22:21:01

+4

你是說'打印「http://domain.name」'不打印出整個字符串?這似乎不太可能。 – 2010-11-03 22:23:19

+0

它直到我從下面刪除sys.exit()。我不知道爲什麼會阻止只打印url而不打印hi,但它確實如此。 – m3z 2010-11-03 22:45:05

回答

7

如果我沒有弄錯可怕讚賞,GAE使用WSGI,你不要簡單地打印東西,你應該返回一個合適的HTTP響應對象(它不是PHP)。

我想如果你使用firefox +螢火蟲訪問網頁,並看看網絡 - >標題,你會看到瀏覽器正在採取http:作爲一個HTTP標頭,值爲「//domain.name」。

編輯:順便說一句,你不應該使用「self.response.out.write」而不是「打印」?

+0

它是在你要求的上下文中。 sys.exit() – m3z 2010-11-03 22:48:10

+0

google.appengine.ext.webapp.WSGIApplication比CGI好得多。 – 2010-11-03 22:59:12

+0

所以我假設我已經設置使用webapp.RequestHandler的標題不發送,如果我打電話sys.exit()有沒有辦法我可以解決這個問題?基本上我想阻止任何進一步的執行,如果發生重定向 – m3z 2010-11-03 23:03:22

0

問題是調用打印或重定向後的sys.exit()

相關問題