码迷,mamicode.com
首页 > Web开发 > 详细

Tornado--搭建网页

时间:2019-01-15 18:27:49      阅读:440      评论:0      收藏:0      [点我收藏+]

标签:loop   djang   页面   return   参数   密码   __name__   redirect   template   

manage.py

from tornado.ioloop import IOLoop  # 处理I/O
from tornado.web import RequestHandler  # 处理请求
from tornado.web import Application  # 实例化APP网页

USER_DICT = {
    ‘1‘: {‘name‘: ‘金超‘, ‘age‘: ‘22‘},
    ‘2‘: {‘name‘: ‘小可‘, ‘age‘: ‘42‘},
    ‘3‘: {‘name‘: ‘小鱼‘, ‘age‘: ‘32‘},
    ‘4‘: {‘name‘: ‘小狗‘, ‘age‘: ‘52‘},
}


# 中间件用于验证是否登录
class AuthHandler(object):
    def prepare(self):
        # name = self.get_cookie(‘xxxxx‘)  #与Django方法做对比
        name = self.set_secure_cookie(‘xxxxx‘)
        if not name:
            self.redirect(‘/login‘)


# home页面  要先继承AuthHandler
class HomeHandler(AuthHandler, RequestHandler):
    def get(self, *args, **kwargs):
        self.render(‘index.html‘, user_dict=USER_DICT, num=[11, 22, 33])


# index主页面
class IndexHandler(AuthHandler, RequestHandler):
    def get(self, *args, **kwargs):
        # 用user_dict带入参数传给页面
        self.render(‘index.html‘, user_dict=USER_DICT, num=[11, 22, 33])


# login登录页面函数
class LoginHandler(RequestHandler):
    def get(self, *args, **kwargs):
        self.render(‘login.html‘, error=‘‘)

    def post(self, *args, **kwargs):
        # Tornado和Django做类比
        # self.get_query_argument(‘user‘)         request.GET.get(‘user‘)
        # self.get_query_arguments(‘user‘)        request.GET.getlist(‘user‘)
        # self.get_body_argument(‘user‘)          request.POST.get(‘user‘)
        # self.get_body_arguments(‘user‘)         request.POST.getlist(‘user‘)
        user = self.get_body_argument(‘user‘)
        pwd = self.get_body_argument(‘pwd‘)
        if user == ‘alex‘ and pwd == ‘123‘:
            self.set_secure_cookie(‘xxxxx‘, user)
            self.redirect(‘/index‘)
            return
        self.render(‘login.html‘, error=‘用户名或密码错误‘)


# 在settings中注册templates和中间件cookie
settings = {
    ‘template_path‘: ‘templates‘,
    ‘cookie_secret‘: ‘asq3wurasldf‘
}

# 在Application()方法里面写页面对应着函数
application = Application([
    (‘/login‘, LoginHandler),
    (‘/index‘, IndexHandler),
    (‘/home‘, HomeHandler),
], **settings)

# listen()方法可以监控端口和IP默认是本机
if __name__ == ‘__main__‘:
    application.listen(8888)
    IOLoop.instance().start()

  

Tornado--搭建网页

标签:loop   djang   页面   return   参数   密码   __name__   redirect   template   

原文地址:https://www.cnblogs.com/weilaixiaochaoren/p/10273402.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!