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循环