ホームページ  >  記事  >  バックエンド開発  >  Pythonでの簡易サーバー構築の解析と実装

Pythonでの簡易サーバー構築の解析と実装

WBOY
WBOYオリジナル
2016-06-16 08:47:001006ブラウズ
要件分析:
Fuel Saving Bao のユーザー数は 6,000 人を超え、元の静的レポートは肥大化してきました。
開くたびに時間がかかり、さらには時間がかかります。ブラウザが直接ハングします
Python を使用して、ニックネーム
をリクエストする最も単純な Web サービスを構築し、対応するレポート データ パラメーターを返し、GET モードで送信します

研究と実装 :
Park 信頼できるものが見つからなかったので、長い間グーグルで検索しましたが、最終的に成功しました。
以下は、問題の一部を記録したソース コードです
コードをコピーします コードは次のとおりです:

#! /usr /bin/env python
# -*- コーディング: utf-8 -*-
"""
@作成者: zhoujiebin
@連絡先: zhoujiebing@maimiaotech.com
@日付: 2012-12-14 15:25
@バージョン: 0.0.0
@ライセンス: 著作権maimiaotech.com
@copyright: 著作権maimiaotech.com
"""
import os
import sys
import urllib
import SimpleHTTPServer
import SocketServer
PORT = 8080
WEBDIR = "/home/zhoujiebing/report_web_service"
from syb_report_html import get_html
class Handler( SimpleHTTPServer.SimpleHTTPRequestHandler):
def translation_path(self, path):
# ルート ディレクトリの設定に使用されます
os.chdir(WEBDIR)
SimpleHTTPServer.SimpleHTTPRequestHandler.translate_path( self,path)
def do_GET(self):
#サーバーが GET リクエストにどのように応答するか
#質問 1 クライアントの GET パラメータを取得する方法
#長時間探しましたができませんでした最後に、__dict__ はパス Path にあることを確認しました。パラメータはパスからのみ抽出できます
#パスから GET パラメータを抽出します
nick = self.path[1:]
#漢字 URL トランスコーディング
nick = str(urllib.unquote (nick))
if nick != 1:
report_html = get_html(nick)
else:
report_html = 'nick は不正です'
print 'request' + nick + ' 燃料節約計画レポート'
self.send_response(200)
self.send_header("Content-type", "text/html")
self. send_header("Content-length", len(report_html))
self.end_headers()
self.wfile.write(report_html)
if __name__ == '__main__':
try:
httpd = SocketServer.TCPServer(("", PORT), Handler )
print "dir %s Serving at port %s"%(repr(WEBDIR), PORT)
#サーバー側プロセスの開始
httpd.serve_forever()
例外 Exception,e:
print 'Exception',e

このプログラムを実行すると、Web サービス プログラムが開始されます
ip を入力するだけです:8080/ブラウザのニックネーム。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。