7-tornado中Url设置、RequestHandler的使用、重定向 RedirectHandler、静态文件 StaticFileHandler

1 URL设置

url地址可以如下操作:
1. 完整匹配,跳转控制器
2. 通过re匹配,跳转控制器
3. 通url传递参数
4. 跳转
4.1 url 反转
使用web.URLSpec中的name属性,在处理函数中使用reverse_url

from tornado import web,ioloopclass IndexHandler(web.RequestHandler):async def get(self):self.write('Hello Tornado!!')
class IndexHandler2(web.RequestHandler):async def get(self):self.write('Hello Tornado22!!')class UserHandler(web.RequestHandler):async def get(self,id):self.write(f'Hello User!! 您登录编号是:{id}')class UserNameHandler(web.RequestHandler):async def get(self,name):self.write(f'Hello User!! 您登录用户名是:{name}')class UserPwdHandler(web.RequestHandler):async def get(self,name,pwd):self.write(f'您登录用户名是:{name} 密码是:{pwd}')  class rediect2Handler(web.RequestHandler):async def get(self):self.redirect(self.reverse_url('index'))class rediect3Handler(web.RequestHandler):def initialize(self,name,pwd):self.name = nameself.pwd = pwdprint(name,'========',pwd)async def get(self):self.redirect(self.reverse_url('index'))args ={'name':'吕小布','pwd':'123'
}
if __name__ == '__main__':app = web.Application([('/',IndexHandler),web.URLSpec('/index/?',IndexHandler2,name='index'),('/user/(\d+)/?',UserHandler),('/user/(\w+)/?',UserNameHandler),# ('/user/(\w+)/(\w+)/?',UserPwdHandler),('/user/(?P<name>\w+)/(?P<pwd>\w+)/?',UserPwdHandler),web.URLSpec('/redirect/',rediect2Handler),web.URLSpec('/redirect2/',rediect3Handler,args)],debug = True)app.listen(8000)ioloop.IOLoop.current().start()

2 RequestHandler

tornado.web.RequestHandler
HTTP请求处理程序的基类initialize
钩子类初始化。要求每个请求prepare
在get、post、etc之前的请求开始时调用 
执行通用初始化on_finish
请求结束后调用
此方法以执行清理,日志记录等
- get
- head
- post
- delete
- patch
- put
- Optionsget_argument
返回具有给定名称的参数的值get_arguments
返回具有给定名称的参数列表get_query_argument
从请求查询字符串中返回具有给定名称的参数的值get_query_arguments
返回具有给定名称的查询参数的列表get_body_argument
从请求主体返回具有给定名称的参数的值get_body_arguments返回具有给定名称的主体参数列表。tipurl字符串参数可以使用Content-Type为 application/x-www-form-urlencoded 或者 multipart/form-data 的可以使用如果是json 无法获取数据 request
包含附加请求参数的对象,例如头文件和主体数据
from tornado import web,ioloop
from json import loads
class IndexHandler(web.RequestHandler):# def initialize(self,db = None):#     self.db = db# 初始化handler参数def prepare(self):#  日志,打开文件print('1111')def on_finish(self):# 清理内容print('3333')async def get(self):print('2222')name = self.get_argument('q')names = self.get_arguments('q')# name = self.get_query_argument('q')# names = self.get_query_arguments('q')print(name)print(names)self.write('成功访问get请求')async def post(self):# name = self.get_body_argument('name')# names = self.get_body_arguments('name')# name = self.get_argument('q')# names = self.get_arguments('q')args = self.request.body.decode('utf-8')  # rawprint(args)# print(loads(args))# print(name)# print(names)self.write('成功访问post请求')self.finish({'msg':'成功访问'})# put delete options patch headif __name__ == '__main__':app= web.Application([('/',IndexHandler),],debug = True)app.listen(8000)ioloop.IOLoop.current().start()

3 重定向 RedirectHandler

 from tornado import web, ioloopfrom tornado.web import RedirectHandler# 301是永久重定向, 302是临时重定向class IndexHandler(web.RequestHandler):def get(self):self.finish('Hello Tornado!')class LoginHandler(web.RequestHandler):def get(self):self.redirect('/')# print(self.reverse_url('index'))if __name__ == "__main__":app = web.Application([web.URLSpec('/',IndexHandler,name='index'),web.URLSpec('/login/',LoginHandler),web.URLSpec('/index/',RedirectHandler,{'url':'/'})],debug=True)app.listen(8000)ioloop.IOLoop.current().start()

4 静态文件 StaticFileHandler

可以提供目录中的静态内容

如果将static_path关键字参数传递给Application,则会自动配置StaticFileHandler。 此处理程序可以使用static_ul_preix、static_handler_class和static_hander_args设置进行自定义。

 from tornado import web, ioloopfrom tornado.web import StaticFileHandlerclass IndexHandler(web.RequestHandler):def get(self):self.finish('Hello Tornado!')settings={'static_path':'./static/','static_url_prefix':'/img/'}if __name__ == "__main__":import osstatic_url = os.path.join(os.path.dirname(os.path.abspath(__file__)),'static')app = web.Application([web.URLSpec('/',IndexHandler,name='index'),('/img2/(.*)',StaticFileHandler,{'path':static_url}) # #方法3],debug=True,# static_path ='./static/', #方法1# static_url_prefix='/img/' #方法1# **settings # #方法2)app.listen(8000)ioloop.IOLoop.current().start()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/203077.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【PyTorch】训练过程可视化

文章目录 1. 训练过程中的可视化1.1. alive_progress1.2. rich.progress 2. 训练结束后的可视化2.1. tensorboardX2.1.1. 安装2.1.2. 使用 1. 训练过程中的可视化 主要是监控训练的进度。 1.1. alive_progress 安装 pip install alive_progress使用 from alive_progress i…

提取B站视频

1、将视频链接粘贴到下面的网站&#xff0c;下载视频到本地。 贝贝BiliBili - B站视频下载 2、使用剪映打开视频&#xff0c;导入视频&#xff0c;导出字幕文件SRT 剪映专业版-全能易用的桌面端剪辑软件-轻而易剪 上演大幕 3、上传SRT文件&#xff0c;解析出来即可 it365 字…

【 Go语言操作MongoDB时候的bson类型】

Go语言操作MongoDB时候的bson类型 在 MongoDB 中&#xff0c;bson&#xff08;Binary JSON&#xff09;是一种二进制编码的文档格式&#xff0c;用于在 MongoDB 和应用程序之间交换数据。bson.D、bson.M、bson.E 和 bson.A 都是 bson 包中的类型&#xff0c;用于处理和操作 bs…

Redis key过期删除机制实现分析

文章目录 前言Redis key过期淘汰机制惰性删除机制定时扫描删除机制 前言 当我们创建Redis key时&#xff0c;可以通过expire命令指定key的过期时间(TTL)&#xff0c;当超过指定的TTL时间后&#xff0c;key将会失效。 那么当key失效后&#xff0c;Redis会立刻将其删除么&#…

wsl2 ubuntu下配置go执行make init 错误 /bin/bash line 1 go command not found

我原来的配置是将www设置在mnt/d/www/goland export GOPATH/mnt/d/www/goland export GOROOT/usr/local/go export PATH$PATH:$GOROOT/bin:$GOPATH/bin后面改为了下面这样&#xff0c;然后重新拉取了项目&#xff0c;就可以了。 export GOPATH/home/用户名/go export GOROOT/…

设置webstorm和idea符合Alibaba规范

只格式化自己更改的代码 ctrlShiftAltL 插件建议 Alibaba Java Coding Guidelines&#xff08;新版本的idea不支持&#xff0c;有其他同名的非官方版可代替&#xff09;&#xff0c;使用方法在此不赘述 1、设置webstorm 包含 设置两个空格缩进&#xff0c;去掉行尾分号&#…

uniapp定时器的应用

1、初始化定时器 data(){return{timer: null, //定时器} } 2、定时器的使用 定时器分两种&#xff0c;setInterval和setTimeout。 二者的区别&#xff1a; setInterval函数会无限执行下去&#xff0c;除非调用clearInterval函数来停止它。setTimeout函数只执行一次&#x…

HarmonyOS/OpenHarmony应用开发-Stage模型应用/组件级配置

在开发应用时&#xff0c;需要配置应用的一些标签&#xff0c;例如应用的包名、图标等标识特征的属性。本文描述了在开发应用需要配置的一些关键标签。图标和标签通常一起配置&#xff0c;可以分为应用图标、应用标签和入口图标、入口标签&#xff0c;分别对应app.json5配置文件…

Xcode15 Library ‘iconv.2.4.0‘ not found

Xcode 15运行老代码报错&#xff1a;Library iconv.2.4.0 not found 解决&#xff1a; TARGETS-->Bulid Phases --> Link Binary With Libraries 添加一个“Libiconv.tbd”, 同时把原来的 “libiconv.2.4.0.tbd”删除&#xff08;一定要删除&#xff0c;不然运行还是…

悲观锁、乐观锁、mybatis-plus实现乐观锁

悲观锁、乐观锁、mybatis-plus实现乐观锁 转载自&#xff1a;www.javaman.cn 1、悲观锁、乐观锁 乐观锁和悲观锁是两种用于处理并发操作的数据锁定策略。它们在处理多个事务尝试同时访问和修改同一数据时的方法有所不同。 悲观锁 (Pessimistic Locking)&#xff1a; 概念&…

「X」Embedding in NLP|Token 和 N-Gram、Bag-of-Words 模型释义

ChatGPT&#xff08;GPT-3.5&#xff09;和其他大型语言模型&#xff08;Pi、Claude、Bard 等&#xff09;凭何火爆全球&#xff1f;这些语言模型的运作原理是什么&#xff1f;为什么它们在所训练的任务上表现如此出色&#xff1f; 虽然没有人可以给出完整的答案&#xff0c;但…

案例059:基于微信小程序的在线投稿系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

uniapp 设置内容超长时的省略样式

需求 在uniapp中&#xff0c;页面在展示搜索历史的时候&#xff0c;需要对内容过长的进行处理&#xff0c;也就是文本超出我的最大长度时&#xff0c;不允许换行&#xff0c;且末尾为省略 期望的效果如下 思路 使用 官网 text-overflow 可选值俩个 clip 修建文本ellipsi…

PyLMKit(6):大模型使用(API型和本地开源模型)

日期&#xff1a;2023-12-6 PyLMKit目前集成了LLM模型有两种类型&#xff1a; API付费调用型本地开源模型下载部署 1.API型LLM模型使用教程 1.1.申请 API KEY 根据你想使用的大模型的官网&#xff0c;注册账号&#xff0c;并申请API KEY&#xff0c;如果需要付费调用&…

PyTorch机器学习与深度学习实践技术应用

近年来&#xff0c;随着AlphaGo、无人驾驶汽车、医学影像智慧辅助诊疗、ImageNet竞赛等热点事件的发生&#xff0c;人工智能迎来了新一轮的发展浪潮。尤其是深度学习技术&#xff0c;在许多行业都取得了颠覆性的成果。另外&#xff0c;近年来&#xff0c;Pytorch深度学习框架受…

我是如何在react中把一个集成了html,css的内容放到页面中的

我是如何在react中把一个集成了html&#xff0c;css的内容放到页面中的 首先把html&#xff0c;css内容进行一个变量化&#xff0c;然后利用useState()去初始化一个变量&#xff0c;最后同通过一个标签属性就好了dangerouslySetInnerHTML{变量} import React, {useEffect, us…

html通过CDN引入Vue组件抽出复用

html通过CDN引入Vue组件抽出复用 近期遇到个需求&#xff0c;就是需要在.net MVC的项目中&#xff0c;对已有的项目的首页进行优化&#xff0c;也就是写原生html和js。但是咱是一个写前端的&#xff0c;写html还可以&#xff0c;.net的话&#xff0c;开发也不方便&#xff0c;还…

React使用echarts并且修改echarts图大小

React使用echarts 引入 npm install --save echarts-for-react npm install --save echarts使用 <ReactEChartsoption{option}notMerge{true}lazyUpdate{true}style{{"width": "100%","height": "800px"}}theme{"theme_nam…

idea开发环境配置

idea重新安装后&#xff0c;配置的东西还挺多的&#xff0c;这里简单记录一下。 1、基础配置 1.1、主题、背景、主题字体大小 1.2、默认字体设置 控制台默认编码设置&#xff1a; 全局文件默认编码设置&#xff1a; 2、构建、编译、部署配置 说明&#xff1a;本地装了JD…

图像处理领域的应用

图像处理领域的应用 文章目录 图像处理领域的应用1.图像类型2.图像转换3.彩色图像表示模式4.图像变换5.图像增强 1.图像类型 #mermaid-svg-x6mNS3Y1YkPvWUsQ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-x6mNS3Y1…