百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

tornado入门 day01(tornado入门教程)

ccwgpt 2024-10-14 08:42 19 浏览 0 评论

django 流行度最广

tornado 异步性能最高

flask 最简单灵活的

tornado简介

django特点 : 开发快速,提供的模块多,orm,admin

session功能

功能全面,开发快速,注重开发效率

中小型网站,大型网站的前期模型构建

nginx + uwsgi + django ----》较高的并发性

tornado特点 :提供了更加高的效率

兼容了HTTP服务器

异步编程

WebSockets

小而快,注重网站性能的优越

对性能和并发性要求高

nginx + tornado Http

tornado 框架

优势

1. 是非阻塞式的并发服务器 速度非常快 (tornado不仅是一个web框架,也是一个http服务器)

2. 和django,flask一样,tornado提供了路由映射,request上下文,response,基于模板的渲染。tornado也是一个全栈框架

3.tornado 使用协程提供了异步的IO支持,除了做网站还可做爬虫,后台游戏服务器等

4.tornado http服务器和tornado框架结合紧密,提供了完整的生产环境

5.Websocket是html5最新的交互标准,实现浏览器和服务器之间的通信,tornado支持这种通信方式

6.tornado不同于django。是一个轻量级的web框架

tornado的安装

官网

http://www.tornadoweb.org

安装

手动安装

1 . 下载相应版本的安装包

下载

https://pypi.python.org/pypi/tornado

2. 将安装包放到环境下进行解压

tar -xvzf tornado-4.5.3.tar.gz

3. 进入解压后的文件夹,进行安装

cd tornado-4.5.3

python3 setup.py build

sudo python3 setup.py install

自动安装

sudo pip3 install tornado

默认安装位置

/usr/local/lib/python3.5/dist-packages/tornado

tornado 工作原理

见图

tornado 支持的http请求方法 :

支持几乎所有的http请求,方法名和http请求名称保持一致

get post put delete head options

http server 创建

tornado web server

#建立服务器对象,服务某个应用

http_server = tornado.httpserver.HTTPServer(app)

#监听端口

http_server.listen(8888)

settings

1.设置方式

* 命令行参数方式设置

tornado.options.define(name,default,type,multiple,help)

功能:设置tornado启动时的命令行参数

参数:name :设置的命令的名称,必须保证全局唯一

default :命令的默认值

type : 命令选项的数据类型(str int float datetime timedeilta)

multiple : 选项值可否为多个值,默认false

help : 对命令选项的帮助描述

使用 python options.py --help 查看帮助文档

python3 options.py --port=9999 --python_web=django,flask,webpy,tornado 给选项赋值

在程序中获取:

*从命令行或许自定义选项和值

tornado.options.parse_command_line()

port = tornado.options.options.port

print(tornado.options.options.python_web)

*从文档获取自定义选项和值

tornado.options.parse_config_file('settings.conf')

tornado框架相关settings设置

* 每个settings设置是和 application对应的,即针对某个tornado.web.Application生成的应用对象起作用

设置方法:

tornado.web.Application([(),(),()...],option1 = xxx,option2=xxx,....)

*Application第一个参数为路由列表

*从第二个参数起,以键值对的是进行传参表示框架中此应用的settings设置

tornado 常见设置

autoreload : 如果设置为True,则文件有变化会自定重启进程

serve_traceback : 如果设置为True,错误页面包含跟踪信息

ui_modules : 配置 UIModules 模板

cookie_secret : 配置cookies的标志位选项

login_url : 设置自动的登录url

xsrf_cookies : 如果为True 则允许访问

autoescape : 设置模板自动转义

template_path : 设置模板路径

compiled_template_cache : 默认为True 如果变为False则每次访问重新加载模板

static_path : 静态文件路径

static_url_prefix : 设置静态文件引入前缀,默认"/static/"

debug : 调试模式 让tornado工作到调试模式,

相当于 autoreload = True + serve_tracebace = True + compiled_template_cache = False + static_hash_cache = False

tornado的路由配置

Application([url list])

url写法

* 每个url使用一个元组构成

* url元组结构

(r'/', 正则表达式

IndexHandler, 处理正则表达式的类

{'subject':'python'}, 给类中的initialize方法传参

name = 'url_test' 给当前url起一个名字 url函数生成 对象

),

当某个URL设置了name后可以通过 reverse_url函数获取到这个URL

python_url = self.reverse_url('python_url')

*当请求url能够被多个URL列表中的正则表达式匹配的时候,以第一个为准执行

向后端handler传参(将具体的请求信息给后端)

* get请求字符串参数传递 key1=value1&key2=value2

* post请求体 表单数据 json

* 提取url的指定部分

* 通过http报头提交自定义字段

1. 获取get请求的查询字符串信息

get_query_argument

(name,default = _ARG_DEFAULT,strip = True)

功能 : 从get请求的字符串中,获取指定请求变量的值,如果出现同名,则返回最后一个

参数 : name : 要获取的请求变量名称

default : 默认值

strip:是否取出两端多余空格

返回 :返回相应请求变量的值

get_query_arguments(name,strip = True)

功能 同get_query_argument,只是如果有重名的get请求变量则会全部获取出来形参一个列表

相关推荐

MFC、Qt、WPF?该用哪个?(mfc和wpf区别)

MFC、Qt和WPF都是流行的框架和工具,用于开发图形用户界面(GUI)应用程序。选择哪个框架取决于你的具体需求和偏好。MFC(MicrosoftFoundationClass)是微软提供的框架,...

一款WPF开发的通讯调试神器(支持Modbus RTU、MQTT调试)

我们致力于探索、分享和推荐最新的实用技术栈、开源项目、框架和实用工具。每天都有新鲜的开源资讯等待你的发现!项目介绍Wu.CommTool是一个基于C#、WPF、Prism、MaterialDesign...

关于面试资深C#、WPF开发工程师的面试流程和问题

一、开场(2-3分钟)1.欢迎应聘者,简单介绍公司和面试流程。2.询问应聘者是否对公司或岗位有初步的问题。二、项目经验与技术应用(10-20分钟)1.让应聘者详细介绍几个他参与过的C#、...

C# WPF MVVM模式Prism框架下事件发布与订阅

01—前言处理同模块不同窗体之间的通信和不同模块之间不同窗体的通信,Prism提供了一种事件机制,可以在应用程序中低耦合的模块之间进行通信,该机制基于事件聚合器服务,允许发布者和订阅者之间通过事件进行...

WPF 机械类组件动画制作流程简述(wps上怎么画机械结构简图)

WPF机械类组件动画制作流程简述独立观察员2025年3月4日一、创建组件创建组件用户控件,将组件的各部分“零件”(图片)拼装在一起,形成组件的默认状态:二、给运动部分加上Rend...

C#上位机WinForm和WPF选哪个?工控老油条的"血泪史"

作为一个从互联网卷进工控坑的"跨界难民",在这会摸鱼的时间咱就扯一下上位机开发选框架这档子破事。当年我抱着WPF的酷炫动画一头扎进车间,结果被产线老师傅一句"你这花里胡哨的玩意...

【一文扫盲】WPF、Winform、Electron有什么区别?

近年来,随着软件开发的不断发展,开发人员面临着选择适合他们项目的各种框架和工具的挑战。在桌面应用程序开发领域,WPF、Winform和Electron是三个备受关注的技术。本文将介绍这三者的区别,帮助...

一个开源、免费、强大且美观的WPF控件库

我们致力于探索、分享和推荐最新的实用技术栈、开源项目、框架和实用工具。每天都有新鲜的开源资讯等待你的发现!项目介绍HandyControl是一套基于WPF(WindowsPresentationF...

WPF 根据系统主题自动切换浅色与深色模式

WPF根据系统主题自动切换浅色与深色模式控件名:Resources作者:WPFDevelopersOrg-驚鏵原文链接[1]:https://github.com/WPFDevelopers...

WPF与WinForm的本质区别(wpf与maui)

在Windows应用程序开发中,WinForm和WPF是两种主要的技术框架。它们各自有不同的设计理念、渲染机制和开发模式。本文将详细探讨WPF与WinForm的本质区别,并通过示例进行说明。渲染机制W...

Win10/Win11效率神器再进化:微软发布PowerToys 0.90.0版本

IT之家4月1日消息,微软今天(4月1日)更新PowerToys,在最新发布的0.90.0版本中,修复多个BUG之外,引入多项功能更新,为Windows10、Windows...

一款非常漂亮的WPF管理系统(wpf架构及特性)

我们致力于探索、分享和推荐最新的实用技术栈、开源项目、框架和实用工具。每天都有新鲜的开源资讯等待你的发现!WPFManager项目介绍该项目是一款WPF开发的管理系统,数据库采用的MSSqlserv...

WPF 实现描点导航(wpf按钮的点击事件)

WPF实现描点导航控件名:NavScrollPanel作者:WPFDevelopersOrg-驚鏵原文链接[1]:https://github.com/WPFDevelopersOrg/WPF...

微软更新基于Win11的Validation OS 2504:增强 .NET与WPF

IT之家5月1日消息,科技媒体NeoWin今天(5月1日)发布博文,报道称微软公司更新基于Windows11的ValidationOS,增强支持.NET和WPF,并优...

WPF的技术架构与优势(wpf的前景)

WindowsPresentationFoundation(WPF)是一个现代化的用户界面框架,专为构建Windows应用程序而设计。它通过分层的技术架构和丰富的功能集,提供了全面的应用程...

取消回复欢迎 发表评论: