インポート再 インポートpymysql URL_DICT = dictの() 「」 ' 理由を追加するための正規ルートへ:ときに実際の開発、URLはしばしば多くのパラメータを持つ、例えばでしょう:/add/0000007.html、前記 000007(証券コード手段:缶対応するデータベースレコードを抽出するための)パラメータであり、 この時間は、通常ではない場合、我々はN、スペースの無駄、とのキーと値のペアの後、辞書、時間が@route Nを書く辞書に対応する機能を追加する必要があります 通常の場合、唯一の辞書のキーと値のペアをするときは、そのような同じ機能に対応/add/00007.html,add/000036.htmlとして完全な複数のURL、1つの@routeを記述する必要が はるかに少なくなります 「」 ' DEFのルート(URL): DEFのset_func(FUNC): URL_DICT [URL] = FUNC DEF call_func(): FUNC() リターンcall_func 戻りset_func @route(R&LT ' /center.html' ) DEF center_p(SET): パス @route(R&LT ' /add/(\d+)\.html ' ) DEF add_focus(RET): #取得ティッカー 。stock_code ret.group =(1 ) #は、在庫か否かを判断しますコード コネティカット= pymysql.connect(' localhostの'、' 根'、'' 、' python_test ' ) カーソル = conn.cursor() SQL = " SELECT * WHEREコードから情報=%のS " cursor.execute(SQL、(stock_code、)) IF ないcursor.fetchone(): cursor.close() はconn.close() の戻り ' 株式を実行していない、我々はスタートアップ企業です、してください人気の男性' 他: #の裁判官証券コードはすでに心配されているかどうかを SQL = ' SELECT * WHERE info_id =%Sからフォーカス' cursor.execute(SQL、(stock_code、)) のiF cursor.fetchone(): cursor.close() はconn.close() の戻り " 懸念されている、関係繰り返さないでください「 他: #の追加の懸念の SQLを= 」フォーカスINTO INSERT(info_id)情報WHERE%がS = IDコードからSELECT ' cursor.execute(SQL、(stock_code、)) conn.commitは、() ()cursor.close はconn.close() の戻り ' OK追加(%s)を.... '%のstock_codeの @route(R&LT ' /add/(\d+)\.html ' ) DEF del_focus(RET): #取得ティッカー stock_code ret.group =(1 ) #は、ティッカー在庫か否かを判断する CONN pymysql.connect =(' localhostの'、' 根'、'' 、' Python_test ' ) カーソル = conn.cursor() SQL = " SELECT *参加インナーフォーカスAS AS I F = ON i.id f.info_id WHERE I.CODE%S =から情報" cursor.execute(SQL、(stock_code、 )) IF ないcursor.fetchone(): cursor.close() はconn.close() の戻りは、 「株式を実行していない、我々は、スタートアップ企業、してください人気のある男性です」 他: #は、証券コードはすでに心配されているかどうかを判断する SQL = ' WHEREフォーカスからinfo_id =%S SELECT * ' cursor.execute(SQL、(stock_code、)) IF ありませんcursor.fetchone(): cursor.close() はconn.close() リターン ' 之前未关注、无法取消' #添加关注 SQL = ' 削除フォーカス(info_id)には、情報コード=%sからIDを選択' cursor.execute (SQL、(stock_code)) conn.commit() cursor.close() はconn.close() リターン ' 追加(%S)OK .... '%のstock_codeの @route(R ' index.htmlを' ) DEF index_p (RET): パス DEF アプリケーション(ENV、start_responseを ):''」envが空の辞書、方法でstart_responseをが引用されているWebサーバー、関数の戻り体である「」「 start_responseを(」200 OKである「 [、(」Content-Typeの「」テキスト/ HTML;のcharset = UTF-8。" )]) FILE_NAME = ENV [ ' PATH INFO ' ] トライ: #1 戻りURL_DICT [ファイル名]() のための URL、FUNC でURL_DICT.items(): '' ' {R&LT "/index.htmlが":インデックス、 R&LT「/ center.html ":センター 。R&LT"追加/ / \ + D \ HTML「:add_focus } ''」 RET = re.match(URL、FILE_NAME) IF RET: リターンFUNC(RET) 以外例外としてRET: リターン ' 異常S%'%STR(RET)