Tornado框架-逻辑处理get()方法和post()方法,初识模板语言
Tornado框架,逻辑处理里的get()方法,和post()方法
get()方法,处理get方式的请求
post()方法,处理post方式的请求
self.get_argument()接收get方式或post方式请求传值,参数是要接收值的名称,如表单传值
接收表单数据
#!/usr/bin/env python #coding:utf-8 import tornado.ioloop import tornado.web #导入tornado模块下的web文件 #逻辑处理 class MainHandler(tornado.web.RequestHandler): #定义一个类,继承tornado.web下的RequestHandler类 def get(self): #get()方法,接收get方式请求 self.render("cshi.html") #显示cshi.html文件 def post(self, *args, **kwargs): #post()方法,接收post方式请求 name = self.get_argument('xxx') #self.get_argument()方法,接收post方式提交name名称为xxx的值 print(name) self.render("cshi.html") #显示cshi.html文件 settings = { #html文件归类配置,设置一个字典 "template_path":"template", #键为template_path固定的,值为要存放HTML的文件夹名称 "static_path":"static", #键为static_path固定的,值为要存放js和css的文件夹名称 } #路由映射 application = tornado.web.Application([ #创建一个变量等于tornado.web下的Application方法 (r"/index", MainHandler), #判断用户请求路径后缀是否匹配字符串index,如果匹配执行MainHandler方法 ],**settings) #将html文件归类配置字典,写在路由映射的第二个参数里 if __name__ == "__main__": #内部socket运行起来 application.listen(8888) #设置端口 tornado.ioloop.IOLoop.instance().start()
html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <!--注意js和css文件路径配置后必须在引入路径里加上配置文件夹名称--> <link rel="stylesheet" href="static/s1.css"> </head> <body> <h1>表单提交</h1> <form method="post" action="/index"> <input type="text" name="xxx"/> <input type="submit" value="提交"/> </form> </body> </html>
表单提交值,接收表单值并传入html模板语言渲染到页面
self.render()方法,参数1向用户请求打开指定html文件,参数2向html文件传入值到模板语言渲染
模板语言
{{...}}html模板语言,接收self.render()方法传值的变量或一个值
{%...%}{%end%}在html渲染代码块
#!/usr/bin/env python #coding:utf-8 import tornado.ioloop import tornado.web #导入tornado模块下的web文件 BAODZHI = [] #设置一个全局变量列表。来接收表单的值 #逻辑处理 class MainHandler(tornado.web.RequestHandler): #定义一个类,继承tornado.web下的RequestHandler类 def get(self): #get()方法,接收get方式请求 self.render("cshi.html",zhi = BAODZHI) #显示cshi.html文件,将BAODZHI全局传到html模板语言进行渲染 def post(self, *args, **kwargs): #post()方法,接收post方式请求 name = self.get_argument('xxx') #self.get_argument()方法,接收post方式提交name名称为xxx的值 BAODZHI.append(name) #将每次接收到的表单值,放入全局变量列表 print(name) self.render("cshi.html",zhi = BAODZHI) #显示cshi.html文件,将BAODZHI全局传到html模板语言进行渲染 settings = { #html文件归类配置,设置一个字典 "template_path":"template", #键为template_path固定的,值为要存放HTML的文件夹名称 "static_path":"static", #键为static_path固定的,值为要存放js和css的文件夹名称 } #路由映射 application = tornado.web.Application([ #创建一个变量等于tornado.web下的Application方法 (r"/index", MainHandler), #判断用户请求路径后缀是否匹配字符串index,如果匹配执行MainHandler方法 ],**settings) #将html文件归类配置字典,写在路由映射的第二个参数里 if __name__ == "__main__": #内部socket运行起来 application.listen(8888) #设置端口 tornado.ioloop.IOLoop.instance().start()
html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <!--注意js和css文件路径配置后必须在引入路径里加上配置文件夹名称--> <link rel="stylesheet" href="static/s1.css"> </head> <body> <h1>表单提交</h1> <form method="post" action="/index"> <input type="text" name="xxx"/> <input type="submit" value="提交"/> </form> <h1>展示内容</h1> <ul> {% for i in zhi %} <li>{{i}}</li> {% end %} </ul> </body> </html>
原理图