個人第一個BAE python應用

 

 

第一步 用baidu賬號登錄開發者中心

http://developer.baidu.com/

Baidu的引導,幫助說明已經很詳細, 這裏不重複。 html

 

 

 

第二步,建立新版本

 

 

svn  check out 代碼下來,注意svn版本要使用1.6版本,我用了最新的版本1.8.1,老是鏈接不上,由於baidu服務器上的svn版本也是1.6的。python

 

Check out下來會有3個文件,以下圖服務器

 

 

 

點擊上圖中的「預覽」按鈕,效果以下圖app

 

第三步 修改一下index.py文件,提交代碼svn

 

 

#-*- coding:utf-8 -*-
#index.py
#@author:huangyanqiang

from urllib import quote
from bae.core.wsgi import WSGIApplication


'''
@note 一個實現了__call__()方法的callable對象。它接受兩個輸入參
@param environ       第一個參數environ是dict類型,它包含了一次HTTP請求相關的環境信息
@param start_response 第二個參數start_response是一個函數類型,應用調用這個函數來返回適當的HTTP響應碼和HTTP響應header
@return application()的返回值是一個Iterable的對象。Iterable對象指的是能夠進行遍歷操做的對象
'''
def app(environ, start_response):
    #獲取請求地址
    url = environ['wsgi.url_scheme']+'://'

    if environ.get('HTTP_HOST'):
        url += environ['HTTP_HOST']
    else:
        url += environ['SERVER_NAME']

        if environ['wsgi.url_scheme'] == 'https':
            if environ['SERVER_PORT'] != '443':
               url += ':' + environ['SERVER_PORT']
        else:
            if environ['SERVER_PORT'] != '80':
               url += ':' + environ['SERVER_PORT']

    url += quote(environ.get('SCRIPT_NAME', ''))
    url += quote(environ.get('PATH_INFO', ''))
    if environ.get('QUERY_STRING'):
        url += '?' + environ['QUERY_STRING']

    #返回請求
    status = '200 OK'
    headers = [('Content-type', 'text/html')]
    start_response(status, headers)
    body=["Welcome to Baidu Cloud!</br>",url]
    return body


application = WSGIApplication(app)

再次訪問: http://0.pythonworld2013.duapp.com/?word=apple函數

輸出:url

Welcome to Baidu Cloud!spa

http://0.pythonworld2013.duapp.com/?word=apple3d

相關文章
相關標籤/搜索