from tornado.web importStaticFileHandler, RedirectHandlerfrom aiomysql importcreate_poolfrom tornado importwebimporttornadofrom tornado.web importtemplateclassMainHandler(web.RequestHandler):definitialize(self, db):
self.db=db
asyncdef get(self, *args, **kwargs):
id= ""name= ""email= ""address= ""message= ""async with create_pool(host=self.db["host"], port=self.db["port"],
user=self.db["user"], password=self.db["password"],
db=self.db["name"], charset="utf8") as pool:
async with pool.acquire() as conn:
async with conn.cursor() as cur:
await cur.execute("SELECT id, name, email, address, message from message")try:
id, name, email, address, message=await cur.fetchone()exceptException as e:passself.render("message.html", id=id, email=email, name=name, address=address, message=message)
asyncdef post(self, *args, **kwargs):
id= self.get_body_argument("id", "")
name= self.get_body_argument("name", "")
email= self.get_body_argument("email", "")
address= self.get_body_argument("address", "")
message= self.get_body_argument("message", "")
async with create_pool(host=self.db["host"], port=self.db["port"],
user=self.db["user"], password=self.db["password"],
db=self.db["name"], charset="utf8") as pool:
async with pool.acquire() as conn:
async with conn.cursor() as cur:if notid:
await cur.execute("INSERT INTO message(name, email, address, message) VALUES('{}','{}','{}','{}')".format(name,
email,
address,
message))else:
await cur.execute("update message set name='{}', email='{}', address='{}', message='{}'".format(name, email, address, message))
await conn.commit()
self.render("message.html", id=id, email=email, name=name, address=address, message=message)
settings={"static_path":"D:/BaiduYunDownload/971、Tornado从入门到进阶/资料/tornado-resources-master/tornado-resources/tornado_overview/chapter03/static","static_url_prefix": "/static/","template_path": "templates","db": {"host": "127.0.0.1","user": "root","password": "mysql","name": "message","port": 3306}
}if __name__ == "__main__":
app=web.Application([
("/", MainHandler, {"db": settings["db"]}),#("/static/(.*)", StaticFileHandler, {"path": "C:/projects/tornado_overview/chapter03/static"})
], debug=True, **settings)
app.listen(8888)
tornado.ioloop.IOLoop.current().start()#self.redirect方法和RedirectHandler方法区别是什么#self.redirect