Tornado Framework を使用して Web サービスを作成しようとしています。システムは、次のような URL を処理することになっています。
IP:Port/?user=1822&catid=48&skus=AB1,FS35S,98KSU1
最初に、URL を読み取るために次のコードを作成しました。
#!/usr/bin/env python
from datetime import date
import tornado.httpserver
import tornado.escape
import tornado.ioloop
import tornado.web
class WService(tornado.web.RequestHandler):
def get(self, url):
self.write("value of url: %s" %(url))
application = tornado.web.Application([
(r"/([^/]+)", WService)])
if __name__ == "__main__":
http_server = tornado.httpserver.HTTPServer(application)
http_server.listen(9000)
tornado.ioloop.IOLoop.instance().start()
URLを入力します:
IP:Port/hello_world
をもたらしました:
value of url: hello_world
"?" を除いて、URL で使用されているすべての文字が機能します。次のようなコードを変更する場合:
application = tornado.web.Application([
(r"/?([^/]+)", WService)])
「?」でURLを送信しました マーク ( IP:Port/?hello_world
) 結果は次のとおりです。
404: Not Found
この問題を解決するためにトルネードについて調べたところ、次のget_argument
ような方法を見つけて適用しようとしました。
class WService2(tornado.web.RequestHandler):
def get(self):
user = self.get_argument('user', None)
respose = { 'user': user }
self.write(response)
と
application = tornado.web.Application([
(r"/", WService2),
])
しかし、URL を送信すると次のようIP:Port/user=5
に返されます。
404お探しのページが見つかりませんでした
私も試しました:
application = tornado.web.Application([
(r"/(\w+)", WService2),
])
また:
application = tornado.web.Application([
(r"/([^/]+)", WService2),
])
何も機能しませんでした。
「?」でURLを読むのに何か間違っていますか?Tornado がこのようなパラメータを含む URL を読み取らない理由はありますuser
か? 何か足りないものはありますか?
Tornado を最新バージョンに更新しましたが、同様に機能しませんでした。
さらに詳しい情報が必要な場合や不明な点がある場合は、お知らせください。
前もって感謝します、