IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Tornado学习 -> 正文阅读

[Python知识库]Tornado学习

请求与响应

接受get传递参数:

  • self.get_argument(name)
  • self.get_arguments(name)
  • self.get_query_argument(name)
  • self.get_query_arguments(name)

接受post传参:

  • self.get_argument(name)
  • self.get_arguments(name)
  • self.get_body_argument(name)
  • self.get_body_arguments(name)

命令行

# 定义启动端口
define('port',default=8080,type=int)
# 解析启动命令 python xxx.py --port=端口号
parse_command_line()
# 监听端口 获取命令行中的port参数
app.listen(options.port)
#启动命令
python xxx.py --port=端口号

tornado应用

  1. 获取tornado.web.Application对象
    (1)handlers=[(访问路由,执行方法)]
    template_path=模板路径
    static_path=静态资源路径(导入静态文件:
    href=‘/static/css/xxx.css’ 或
    {{static_url(‘css/xxx.css’)}}

    (2)监听端口:Application对象.listen(端口)

# 路由处理
def make_app():
    # handlers参数中定义路由匹配地址
    return tornado.web.Application(handlers=[

        (r'/',MainHandler),
        (r'/admin', EntryHandler),
        (r'/index',IndexHandler)
    ],template_path=os.path.join(os.path.dirname(os.path.abspath(__file__)),'template')
    )
  1. 执行方法类,继承tornado.web.RequestHandler
    定义get、post方法
class MainHandler(tornado.web.RequestHandler):
    # 渲染相应给浏览器的数据
         # 匹配get方法
     def get(self):
         self.write('hello,tornado')

        # 匹配post方法
     def post(self):
         self.write('hello post')
  1. 启动 监听IO实例
    tornado.ioloop.IOLoop.current().start()

路由定义

  1. 第一种 不命名
    tornado.web.Application(handlers=[(‘/days/(\d+)/(\d+)’,daysHandler)]
    方法定义时的参数顺序与之一 一对应
    def get(self,month,day)

  2. 第二种 命名参数
    ?P<paramterName> 正则

 	 tornado.web.Application(handlers=[('/days/(?P <name> \d+)/(?P <name2> \d+)',daysHandler)]
 	 #与命名参数相对应
 	 def get(self,name2,name)

切入点函数(以数据库连接为例)

1、def initialize 自动执行
2、def on_finish

class EntryHandler(tornado.web.RequestHandler):
    def initialize(self):
        self.conn=pymysql.Connect(host='127.0.0.1',password='root',database='market',user='root',port=3306)
        self.cursor=self.conn.cursor()
        print('initialize')
    def get(self):
        print('get')
        sql='select * from admin'
        self.cursor.execute(sql)
        data=self.cursor.fetchall()
        print(data)
        self.write('查询数据')
        # self.redirect('/')
    def post(self):
        pass
    def on_finish(self):
        print('on_finish')
        self.conn.close()

模板

父模板

挖坑:{% block name %} {% end %}

子模板

继承:{% extends ‘父模板名称’ %}

模板语法

标签 {% 标签名%} {%end%}

  • while标签 {% while条件 %} {%end%}
  • for标签 {% for 变量 in [] %} {%end%}
  • set 标签 {% set 变量=值 %} 可设置一个变量

变量:{{变量名}}

注解{#注解内容#}

数据库连接

1.conn.py

# 连接数据库的格式
# mysql+pymysql://root:root@127.0.0.1:3306/数据库名
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

db_url='mysql+pymysql://root:root@127.0.0.1:3306/sys'

# 1、创建引擎,建立连接
engine=create_engine(db_url)

# 2、模型与数据库的表进行关联的基类,Model必须继承于Base
Base=declarative_base(engine)

# 3、创建session会话
DbSession=sessionmaker(bind=engine)
session=DbSession()

2、Model

from sqlalchemy import Column,Integer,String

from utils.conn import Base
#创建表
def create_db():
    Base.metadata.create_all()

class Student(Base):
    # 主键自增int类型的id主键
    id=Column(Integer,primary_key=True,autoincrement=True)

    # 定义不能为空的唯一的姓名字段
    s_name=Column(String(10),unique=True,nullable=False)
    s_age=Column(Integer,default=18)

    __tablename__='student'

3、Handler

class StuHandler(tornado.web.RequestHandler):
    def get(self):
        # .all是返回一个列表
        # res=session.query(Student).filter(Student.s_name=='xzc').all()
        res=session.query(Student).filter_by(s_name='xzc').all()
        print(res)
        self.write('查询数据成功!')

    def delete(self):
        # 第一种方法 session.delete(stu)
        # stu=session.query(Student).filter(Student.s_name=='xzc').first()
        # session.delete(stu)

        # 第二种方法 调用delete()
        session.query(Student).filter(Student.s_name=='xzc').delete()
        session.commit()
        self.write('数据删除成功!')
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 20:37:01  更:2022-10-08 20:40:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/26 2:48:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计