1.模板渲染
import tornado.ioloop import tornado.web # web应用api # 写入页面内容 class MainHandler(tornado.web.RequestHandler): # 处理http请求 def get(self): self.write("<h1>Hello World</h1>") # 渲染模板 class TemHandler(tornado.web.RequestHandler): def get(self): self.render(‘index.html‘) # 返回html模板 def post(self): username = self.get_argument(‘username‘, ‘没有‘) # 获取form表单输入的值,如果有多个username,则获取最后一个 usernames = self.get_arguments(‘username‘) # 获取form表单输入的值,获取多个username,返回一个列表 password = self.get_argument(‘password‘, ‘没有‘) # 如果没有获取到password,则打印默认值‘没有’ print(username) print(usernames) print(password) self.write(‘登录成功‘) # 自定义404页面 class ErrorHandler(tornado.web.RequestHandler): def get(self): self.write_error(404) # 调用write_error这个方法 # 对write_error这个方法进行重写,自定义404页面 def write_error(self, status_code: int, **kwargs): self.render(‘404.html‘) def make_app(): return tornado.web.Application([ # tornado配置,静态文件等 (r"/", MainHandler), # 配置路由 (r"/t", TemHandler), (r"/.*", ErrorHandler), # 只能写在最后 ], debug=True, template_path=‘../template‘, # 配置模板路径 ) if __name__ == "__main__": # 只有在当前文件运行的时候才会执行 app = make_app() app.listen(8888) tornado.ioloop.IOLoop.current().start() # 开启tornado服务
2.路径参数、关键字参数
import tornado.ioloop import tornado.web # web应用api class MainHandler(tornado.web.RequestHandler): # 处理http请求 def get(self): self.write("<h1>hello world</h1>") # 重定向 class RedHandler(tornado.web.RequestHandler): def get(self): self.redirect(‘/‘) # 静态文件 class StaticHandler(tornado.web.RequestHandler): def get(self): self.render(‘test.html‘) # 路径参数 class PAttrHandler(tornado.web.RequestHandler): def get(self, age, name): self.write(‘年龄:{} 姓名:{}‘.format(age, name)) # 关键字参数 class TesHandler(tornado.web.RequestHandler): def get(self): name = ‘小红‘ age = 20 hobby = [‘吃‘, ‘睡‘, ‘逛街‘] data = { ‘name‘: name, ‘age‘: age, ‘hobby‘: hobby, } self.render(‘key.html‘, **data) class KeyHandler(tornado.web.RequestHandler): def get(self): age = self.get_argument(‘age‘) name = self.get_argument(‘name‘) self.write(‘年龄:{} 姓名:{}‘.format(age, name)) def make_app(): return tornado.web.Application([ # tornado配置,静态文件等 (r"/", MainHandler), # 配置路由 (r"/r", RedHandler), (r"/s", StaticHandler), (r"/t", TesHandler), (r"/k", KeyHandler), (r"/p/(\d*)/(.*)", PAttrHandler), ], debug=True, static_path=‘../static‘, # 配置静态文件路径 template_path=‘../template‘, # 配置模板路径 ) if __name__ == "__main__": # 只有在当前文件运行的时候才会执行 app = make_app() app.listen(8888) tornado.ioloop.IOLoop.current().start() # 开启tornado服务
3.前端页面
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="{{ static_url(‘css/test.css‘) }}"> </head> <body> <h1>静态文件</h1> <img src="{{ static_url(‘images/4.jpg‘) }}" alt=""> <script src="{{ static_url(‘js/test.js‘) }}"></script> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>姓名:{{ name }}</h1> <h1>年龄:{{ age }}</h1> <h1>爱好:</h1> <ul> {% for i in hobby %} <li>{{ i }}</li> {% end %} </ul> <hr> {% for key in dict %} <li>{{ key }}</li> {% end %} <hr> {% for value in dict.values() %} <li>{{ value }}</li> {% end %} <hr> {% if name %} 欢迎{{ name }} {% else %} 游客 {% end %} <br> <a href="/k?age={{ age }}&name={{ name }}">跳转页面</a> </body> </html>
4.运行效果图
原文:https://www.cnblogs.com/nanamiyi/p/12864180.html