私は PHP での作業に非常に慣れています。新しい .php ファイルの作成、すべての入力、HTML との混合、さまざまな .php/.html ファイルのインクルード/要求などです。
私は Tornado の使い方を学び始めたばかりで、Tornado が構築されている基本的な原則と構成要素に頭を悩ませています。
Tornado がどのように機能するかを正確に理解するために (もちろん、ドキュメントを読むことは別として)、私は PHP で基本的なものを取り、それを Tornado で再作成しようとしています。
たとえば、PHP には自分のindex.php
ページがあります。そのページには、email
入力とpassword
入力があります。ユーザーがフォームを送信すると、action
が に設定され、ユーザーを認証する「ログイン機能」が呼び出される場所にlogin.php
送信されます。login.php
すべてが正常であれば、$_SESSION
変数が設定され、ログインされます。エラーがある場合は、エラー メッセージがlogin.php
Tornado に関して、これに相当する「疑似コード」は何でしょうか?
いくつかの基本的で非常に不完全な python:
import os
import tornado.web
import tornado.ioloop
root = os.path.dirname(__file__)
port = 8888
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.render("index.html")
class LoginHandler(tornado.web.RequestHandler):
def get(self):
self.render("login.html", title="Login to your account!")
def post(self):
useremail = self.get_argument("useremail", None)
password = self.get_argument("password", None)
self.render("login.html", title="Login to your account!")
def main():
application = tornado.web.Application([
(r"/", MainHandler),
(r"/login", LoginHandler),
(r"/css/(.*)", tornado.web.StaticFileHandler, {"path": os.path.join(root, 'css')}),
(r"/pictures/(.*)", tornado.web.StaticFileHandler, {"path": os.path.join(root, 'pictures')}),
])
application.listen(port)
tornado.ioloop.IOLoop.instance().start()
if __name__ == "__main__":
main()
ここでの私の変換に関するヘルプは大歓迎です。これは、私が慣れ親しんでいるものとはまったく異なる方法であり、このような単純なプロセスの疑似コードは間違いなく役に立ちます。とにかく、みんなありがとう。