import tornado.ioloop import tornado.web import tornado.httpserver # 非阻塞 import tornado.options # 提供了多种选择 python xxx.py --port=xxxx from tornado.options import define,options from data.user_module import User define('port',default=8000,help='run port',type=int) # windows通过Ctrl+鼠标左键 define('version',default=0.1,help='version',type=str) class LoginHandler(tornado.web.RequestHandler): def get(self): self.render('login.html') # 通过form表单输入并提交用户数据 def post(self, *args, **kwargs): name =self.get_argument('name','') # 获取到用户登录的 用户名 username = User.by_name(name) # 根据用户名去匹配数据库是否有这条数据 by_name=session.query(User).filter_by(username=name).all() 返回list password = self.get_argument('password','') # 获取用户登陆的密码if username and password==username[0].password: # 判断用户是否存在及密码是否正确 self.render('login_success.html', # 返回一个登陆页面 username=username ) else: self.write('用户名或密码错误') application = tornado.web.Application( handlers=[ (r"/login",LoginHandler), ], template_path='templates', # 表明页面html的路径 static_path='static', debug=True # 上传代码后服务器自动重启 ) if __name__ == '__main__': tornado.options.parse_command_line() # 通过sys.arg获取命令行输入参数(python xxx.py --port=xxx) print(options.port) print(options.version) http_server = tornado.httpserver.HTTPServer(application) # 非阻塞 application.listen(options.port) tornado.ioloop.IOLoop.instance().start() # 启动io循环