学习目标
mkvirtualenv tornado_py3 -p python3
pip install tornado
# 虚拟环境
mkvirtualenv # 创建虚拟环境
rmvirtualenv # 删除虚拟环境
workon # 进入虚拟环境、查看所有虚拟环境
deactivate # 退出虚拟环境
# pip
pip install # 安装依赖包
pip uninstall # 卸载依赖包
pip list # 查看已安装的依赖库
# 类似django中视图
class MainHandler(tornado.web.RequestHandler):
# 得到数据
def get(self):
# 这里就是返回的内容
self.write("得到数据")
# 添加新的数据
def post(self):
self.write("添加新的数据")
# 修改数据
def put(self):
self.write("修改数据")
# 删除数据
def delete(self):
self.write("删除数据")
# 程序配置
def make_app():
return tornado.web.Application([
(r"/books/", MainHandler),
],
static_path="./static" # 配置静态文件夹路径
)
def make_app():
return tornado.web.Application([
(r"/books/", MainHandler),
],
static_path="./static", # 配置静态文件夹路径
template_path = "./templates",# 配置模板路径
)
Title
{{ show }}
模板内容使用render返回内容
# 类似django中视图
class MainHandler(tornado.web.RequestHandler):
# 得到数据
def get(self):
# 这里就是返回的内容
self.render("index.html",show='显示内容')
-- 创建数据库
create database book_manager charset=utf8;
-- 使用数据库
use book_manager;
-- 创建表
CREATE TABLE books(id int UNSIGNED PRIMARY KEY AUTO_INCREMENT ,btitle VARCHAR(30) not NULL ,bauthor VARCHAR(30) NOT NULL ,bperson VARCHAR(30),bpub_date DATE NOT NULL ,bread INT UNSIGNED,bcomment INT UNSIGNED);
-- 插入数据
insert into books(btitle, bauthor, bperson, bpub_date, bread, bcomment) VALUES
('红楼梦','曹雪芹','宝 ','1980-5-1',12,34),
(' 游记','施耐安','悟空','1986-7-24',36,50),
(' 浒传','吴承恩','林冲','1995-12-24',20,80),
('三国演义','罗贯中','曹操','1980-5-1',58,24);
pip install pymysql
8.1.1get请求处理
class MainHandler(tornado.web.RequestHandler):
# 得到数据
# 异步方法
def get(self):
# 1. 从数据库得到数据
# 1.1连接数据库
# 创建Connection连接
conn = connect(host='localhost', port=3306, database='book_manager', user='root', password='mysql', charset='utf8')
# 获得Cursor对象
cs1 = conn.cursor()
# 1.2 执行查询的sql语句
cs1.execute("select * from books;")
# 得到数据库的数据
data = cs1.fetchall()
# 1.3 关闭
cs1.close()
conn.close()
# 操作
#for temp in data:
# print(temp)
# 返回数据
self.render('index.html',show_list = data)
8.1.2模板数据展示
{% for temp in show_list%}
{%end%}
def post(self):
# 得到请求的数据
# 使用元组
params_list = list()
params_list.append(self.get_argument('btitle'))
params_list.append(self.get_argument('bauthor'))
params_list.append(self.get_argument('bperson'))
params_list.append(self.get_argument('bpub_date'))
params_list.append(self.get_argument('bread'))
params_list.append(self.get_argument('bcomment'))
print(params_list)
# 1. 从数据库得到数据
# 1.1连接数据库
# 创建Connection连接
conn = connect(host='localhost', port=3306, database='book_manager', user='root', password='mysql',
charset='utf8')
# 获得Cursor对象
cs1 = conn.cursor()
# 1.2 执行查询的sql语句
cs1.execute("insert into books(btitle,bauthor,bperson,bpub_date,bread,bcomment) values(%s,%s,%s,%s,%s,%s)",
params_list)
# 得到数据库的数据
conn.commit()
# 1.3 关闭
cs1.close()
conn.close()
self.write({"data": "success"})
def put(self):
# 得到数据
body_data = self.request.body.decode("utf-8")
# 解析成字典
params_dict = json.loads(body_data)
# 1. 从数据库得到数据
# 1.1连接数据库
# 创建Connection连接
conn = connect(host='localhost', port=3306, database='book_manager', user='root', password='mysql',
charset='utf8')
# 获得Cursor对象
cs1 = conn.cursor()
# btitle, bauthor, bperson, bpub_date, bread, bcomment
# 1.2 执行查询的sql语句
cs1.execute(
"update books set btitle = %(btitle)s,bauthor = %(bauthor)s,bperson = %(bperson)s,bpub_date =%(bpub_date)s,bread = %(bread)s,bcomment = %(bcomment)s where id = %(id)s",
params_dict
)
# 得到数据库的数据
conn.commit()
# 1.3 关闭
cs1.close()
conn.close()
self.write({"data":"success"})
def delete(self):
# 得到数据
body_data = self.request.body.decode("utf-8")
# 解析成字典
params_dict = json.loads(body_data)
# 1. 从数据库得到数据
# 1.1连接数据库
# 创建Connection连接
conn = connect(host='localhost', port=3306, database='book_manager', user='root', password='mysql',
charset='utf8')
# 获得Cursor对象
cs1 = conn.cursor()
# 1.2 执行查询的sql语句
cs1.execute("delete from books where id = %(id)s", params_dict)
conn.commit()
# 1.3 关闭
cs1.close()
conn.close()
self.write({"data":"success"})
class MainHandler(tornado.web.RequestHandler):
# 得到数据
# 异步方法
async def get(self):
print('get请求')
# 等待3秒
await asyncio.sleep(3)
# 这里就是返回的内容
self.render("index.html",show='显示内容')
pip3 install aiomysql
只需要方法前加async 再耗时返回时使用await返回
class MainHandler(tornado.web.RequestHandler):
# 得到数据
# 异步方法
async def get(self):
# 1. 从数据库得到数据
# 1.1连接数据库
# 创建Connection连接
conn = await aiomysql.connect(host='localhost', port=3306, db='book_manager', user='root', password='mysql',
charset='utf8')
# 获得Cursor对象
cs1 = await conn.cursor()
# 1.2 执行查询的sql语句
await cs1.execute("select * from books;")
# 得到数据库的数据
data = await cs1.fetchall()
# 1.3 关闭
await cs1.close()
conn.close()
# 操作
# for temp in data:
# print(temp)
self.render('index.html', show_list=data)
async def post(self):
# 得到请求的数据
# 使用元组
params_list = list()
params_list.append(self.get_argument('btitle'))
params_list.append(self.get_argument('bauthor'))
params_list.append(self.get_argument('bperson'))
params_list.append(self.get_argument('bpub_date'))
params_list.append(self.get_argument('bread'))
params_list.append(self.get_argument('bcomment'))
print(params_list)
# 1. 从数据库得到数据
# 1.1连接数据库
# 创建Connection连接
conn = await aiomysql.connect(host='localhost', port=3306, db='book_manager', user='root', password='mysql',
charset='utf8')
# 获得Cursor对象
cs1 = await conn.cursor()
# 1.2 执行查询的sql语句
await cs1.execute("insert into books(btitle,bauthor,bperson,bpub_date,bread,bcomment) values(%s,%s,%s,%s,%s,%s)",
params_list)
# 得到数据库的数据
await conn.commit()
# 1.3 关闭
await cs1.close()
conn.close()
self.write({"data": "success"})
async def put(self):
# 得到数据
body_data = self.request.body.decode("utf-8")
# 解析成字典
params_dict = json.loads(body_data)
# 1. 从数据库得到数据
# 1.1连接数据库
# 创建Connection连接
conn = await aiomysql.connect(host='localhost', port=3306, db='book_manager', user='root', password='mysql',
charset='utf8')
# 获得Cursor对象
cs1 = await conn.cursor()
# btitle, bauthor, bperson, bpub_date, bread, bcomment
# 1.2 执行查询的sql语句
await cs1.execute(
"update books set btitle = %(btitle)s,bauthor = %(bauthor)s,bperson = %(bperson)s,bpub_date =%(bpub_date)s,bread = %(bread)s,bcomment = %(bcomment)s where id = %(id)s",
params_dict
)
# 得到数据库的数据
await conn.commit()
# 1.3 关闭
await cs1.close()
conn.close()
self.write({"data": "success"})
async def delete(self):
# 得到数据
body_data = self.request.body.decode("utf-8")
# 解析成字典
params_dict = json.loads(body_data)
# 1. 从数据库得到数据
# 1.1连接数据库
# 创建Connection连接
conn = await aiomysql.connect(host='localhost', port=3306, db='book_manager', user='root', password='mysql',
charset='utf8')
# 获得Cursor对象
cs1 = await conn.cursor()
# 1.2 执行查询的sql语句
await cs1.execute("delete from books where id = %(id)s", params_dict)
await conn.commit()
# 1.3 关闭
await cs1.close()
conn.close()
self.write({"data":"success"})
页面更新:2024-03-07
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号