tornado

hello.py

"""__author__ = song"""
import os

import tornado.ioloop
import tornado.web
from tornado.options import define, options, parse_command_line
import pymysql

# 定义默认启动的端口为80
define('port', default=8080, type=int)

class MainHandler(tornado.web.RequestHandler):
    # 必须继承RequestHandler
    def get(self):
        # 渲染响应给浏览器的数据
        name = self.get_argument('name')
        self.write('hello tornado')

    def post(self):
        # self.write('hello tornado post')
        name = self.get_argument('name')

class ResHandler(tornado.web.RequestHandler):
    def get(self):

        self.write('

zzz

') self.set_status(404) self.set_cookie('zzz', '123',expires_days=1) # self.clear_cookie('zzz') self.redirect('/') class DaysHandler(tornado.web.RequestHandler): # def get(self, year, month, day): def get(self, month, day, year): # http://127.0.0.1/days/2019/03/11/:11年2019月03日 self.write('%s年%s月%s日' %(year , month, day)) class Days2Handler(tornado.web.RequestHandler): # def get(self, year, month, day): def get(self, month, day, year): # 2019年03月11日 # 用了参数P之后则就一一对应起来,不受一开始get里参数的顺序影响 self.write('%s年%s月%s日day' %(year , month, day)) def post(self, month, day, year): self.write('post: 只负责新增数据') def delete(self, month, day, year): self.write('delete: 只负责删除') def patch(self, month, day, year): self.write('patch: 修改全部属性') def put(self,month, day, year): self.write('put: 修改全部属性') class EntryHandler(tornado.web.RequestHandler): def initialize(self): self.conn = pymysql.Connection(host='127.0.0.1',user='root',password='root',port=3306,database='flask9') self.cursor = self.conn.cursor() print('initialize') # self.write('initialize') def prepare(self): print('prepare') def get(self): print('get') # 查询flask9数据库 查询所有学生信息 sql = 'select * from stu;' self.cursor.execute(sql) data = self.cursor.fetchall() print(data) self.write('查询数据') def post(self): pass def on_finish(self): # 最后执行的方法 print('on_finish') self.conn.close() class IndexHandler(tornado.web.RequestHandler): def get(self): self.render('index.html') def make_app(): # handlers里参数中定义路由匹配地址 return tornado.web.Application(handlers=[ (r'/', MainHandler), (r'/res/', ResHandler), (r'/days/(\d{4})/(\d{2})/(\d{2})/', DaysHandler), (r'/days2/(?P\d{4})/(?P\d{2})/(?P\d{2})/', Days2Handler), (r'/entry_point/', EntryHandler), (r'/index/', IndexHandler) ], # D:\workspace\tornado\day01\templates template_path=os.path.join(os.path.dirname(os.path.abspath(__file__)),'templates') ) if __name__ == '__main__': # 解析启动命令 python xxx.py --port=端口号 parse_command_line() # 启动 app = make_app() app.listen(options.port) # 监听IO实例 tornado.ioloop.IOLoop.current().start()

base.html




    
    Title
    {% block title %}
    {% end %}


{% block content%}

{% end %}


index.html

{% extends 'base.html' %}

{% block title %}
    首页(子模板)
{% end %}

{% block content %}
    

hello 模板继承

{% end %}

你可能感兴趣的:(tornado)