قسمت چهارم آموزش فریمورک تورنادو-روند اجرای درخواستها
در این جلسه دربارهی چهار متدی میگیم که هر بار درخواستی به سمت برنامه میاد به صورت اتوماتیک اجرا میشوند. مثل همیشه اگر سوالی داشتید میتونید در زیر همین تاپیک مطرح کنید.
با ارسال درخواست به اپ تورنادویی به صورت خودکار چهار متد اجرا میشوند. اولین متدی که اجرا میشود، initialize است که معمولا برای مقداردهی اولیه استفاده میشود.( متد __init__ را اورراید نکنید چونکه کلاس RequestHandler از این متد استفاده میکند). من از متد initialize برای فرستادن یک کانکشن دیتابیس استفاده میکنم.
def initalize(self, db):
self.db = db
در قسمت آدرسدهی باید یک آرگومان سوم به صورت دیکشنری ارسال گردد.
tornado.web.url('/foo/bar/', Handler, dict(db=dbconnection), name='foo')
متد دوم prepare است که معمولا برای انجام پردازشهایی برروی درخواست قبل از رسیدن درخواست به HTTP methods استفاده میشود. فرض کنید که بخواهیم چک کنیم که آیا کاربری که درخواست را فرستاده است از قبل احراز هویت شده است یا خیر؟ در این صورت میتوانیم در متد prepare چک کنیم که کاربر لاگین کرده است یا نه.
def prepare(self):
if self.current_user is None:
self.redirect('/login')
متد بعدی که اجرا میشود، یکی از متدهای HTTP است. HTTP methods بر حسب نوع درخواست اجرا میشوند اگر درخواست ما از نوع get باشد، متد get اجرا میشود. اگر درخواست از نوع post باشد متد post اجرا میگردد و قسالیهذا.
def HTTP_METHOD(self):
pass
متد آخر که اجرا میشود متد on_finish است. کار آزاد کردن منابع را میتوان در این متد انجام داد. مثلا در این متد میتوان کانکشن به دیتابیس را بست.
def on_finish(self):
self.db.close()