WEB框架
WEB框架本质
一、WEB请求流程
所有的web应用,都是基于socket,所有的http请求都是短链接;
python的web框架分为两部分:1、自己写socket,自己处理请求(Tornado);2、基于wsgi,自己处理请求(其他的比如Django);
1、接受请求
2、预处理请求;将预处理的结果放到RunServer中;
二、自定义web框架之路由系统
请求-->wsgi-->Django
请求-->自己写socket-->Tornado
#!/usr/bin/env python
# _*_ coding:utf- _*_
from wsgiref.simple_server import make_server def RunServer(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/html')])
#根据UL不同,返回不同的字符串
#、获取URL
#、根据URL的不同做出不同的想相应
request_url =environ['PATH_INFO']
print request_url
if request_url == "/home/index":
return "Chales"
elif request_url == "/haha":
return 'hehe'
else:
return
#return '<h1>Hello, web!</h1>' if __name__ == '__main__':
httpd = make_server('', , RunServer)
print "Serving HTTP on port 8000..."
httpd.serve_forever()
栗子1
#!/usr/bin/env python
# _*_ coding:utf- _*_
from wsgiref.simple_server import make_server
def index():
#return '<h1>index</h1>'
data = open('html/index.html').read()
return data def dali():
return 'dali' url_list = [
('/index/',index),
('/dali/',dali),
]
def RunServer(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/html')])
request_url =environ['PATH_INFO']
for url in url_list:
if request_url == url[]:
return url[]()
else:
return ""
if __name__ == '__main__':
httpd = make_server('', , RunServer)
print "Serving HTTP on port 8000..."
httpd.serve_forever()
栗子2
WEB框架的更多相关文章
- Python(九)Tornado web 框架
一.简介 Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本.这个 Web 框架看起来有些像web.py 或者 Google 的 webapp,不过 ...
- 转-基于NodeJS的14款Web框架
基于NodeJS的14款Web框架 2014-10-16 23:28 作者: NodeJSNet 来源: 本站 浏览: 1,399 次阅读 我要评论暂无评论 字号: 大 中 小 摘要: 在几年的时间里 ...
- 初步认识Node 之Web框架
上一篇我们认识了Node是什么之后,这一篇我们主要了解的就是它的框架了.而它的框架又分为两大类,Web框架和全栈框架,接下来我们一个一个的来了解. Web框架 Web框架可以细分为Web应用程序 ...
- 【原】Go语言及Web框架Beego环境无脑搭建
本文涉及软件均以截至到2013年10月12日的最新版本为准 1. 相关软件准备: 1) go1.2rc1.windows-386.msi,对应32位windows系统安装使用 下载地址: https: ...
- 【译】什么是 web 框架?
Web 应用框架,或者简单的说是“Web 框架”,其实是建立 web 应用的一种方式.从简单的博客系统到复杂的富 AJAX 应用,web 上每个页面都是通过写代码来生成的.我发现很多人都热衷于学习 w ...
- 冰冻三尺非一日之寒--web框架Django
1.JS 正则 test - 判断字符串是否符合规定的正则 rep = /\d+/; rep.test("asdfoiklfasdf89asdfasdf ...
- web框架django初探
Web框架介绍 一般会分为两部分:服务器程序和应用程序.服务器程序负责对socket服务器进行封装,并在请求到来时,对请求的各种数据进行整理.应用程序则负责具体的逻辑处理.为了方便应用程序的开发,就出 ...
- web前端基础知识-(六)web框架
一.web框架本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. #!/usr/bin/env python #coding:ut ...
- 第三篇 基于.net搭建热插拔式web框架(重造Controller)
由于.net MVC 的controller 依赖于HttpContext,而我们在上一篇中的沙箱模式已经把一次http请求转换为反射调用,并且http上下文不支持跨域,所以我们要重造一个contro ...
- 第二篇 基于.net搭建热插拔式web框架(沙箱的构建)
上周五写了一个实现原理篇,在评论中看到有朋友也遇到了我的问题,真的是有种他乡遇知己的感觉,整个系列我一定会坚持写完,并在最后把代码开源到git中.上一篇文章很多人看了以后,都表示不解,觉得不知道我到底 ...
随机推荐
- MaskEdit 使用方法
它有一个 MaskEdit 属性(注意,属性) 打开后有一个 Input Mask 编辑框 格式符意义 L 允许输入英文字母,且一定要输入 l 允许输入 ...
- .NET文件跨服务器上传下载
环境说明:两台服务器服务器为A,服务器为B,服务器B为文件服务器 1.在A和B上创建用户docshareuser,用户名和密码保持一致 2.B服务器上设置附件文件夹Attachments共享,添加用户 ...
- SVN设置钩子
在post-commit 文件后增加两行: WEB_DIR="/data/www/wb.abc.cn/2.4" /usr/bin/svn update $WEB_DIR --use ...
- OAF_文件系列10_实现OAF将数据资料导出Excel到本地JXL(案例)
20150729 Created By BaoXinjian
- TensorFlow中与卷积核有关的各参数的意义
以自带models中mnist的convolutional.py为例: 1.filter要与输入数据类型相同(float32或float64),四个参数为`[filter_height, filter ...
- Android开发资料学习(转载/链接)
http://www.devdiv.com/android_-forum-102-1.html 各种开源控件集合 http://www.cnblogs.com/android-blogs/p/5342 ...
- C++ vector erase函数的使用注意事项
最近使用了顺序容器的删除元素操作,特此记录下该函数的注意事项. 在C++primer中对c.erase(p) 这样解释的: c.erase(p) 删除迭代器p所指向的元素,返回一个指向被删元素 ...
- jQuery 事件探秘
jQuery 事件中为 dom 元素动态绑定事件的方式: 绑定事件到元素上 $(selector).bind('eventName', function(){}); 一次绑定多个事件时,事件名用单个空 ...
- 关于intellij IDEA 上junit的用法
话说,最近正在看视频学java.里面有个叫做junit的东西很有用.但是实话说我摆弄了半天都没弄明白. 今天呢通过一些资料,终于弄清楚了junit的大致用法,这里写出来,用以分享和备忘. 首先,环境和 ...
- Coretext实现图文混排及Gif图片播放
CoreText是iOS3.2推出的一套文字排版和渲染框架,可以实现图文混排,富文本显示等效果. CoreText中的几个重要的概念: CTFont CTFontCollection CTFontD ...