01 Web框架介绍
一、Web框架本质
- 所有的web应用程序本质上都是socket,用户的浏览器其实就是一个socket客户端。
- python中常用的web框架有:
- Django
- Flask
- web.py
- WSGI(web server gateway interface)定义了使用python编程的web app和web server之间的接口格式,实现了服务端与客户端的解耦。
- pytho标准库提供的独立WSGI服务器称为wsgired。
二、利用wsgrired自定义Web框架
#!/usr/local/bin/python3
#-*-coding:utf-8 -*-
#Author:Felix Song ;Environment:pycharm 5.0.3(python3.6) #用python标准库开发一个自己的web框架
from wsgiref.simple_server import make_server #第二步改造,获取conf中的内容
import conf_url def RunServer(environ,start_response):
start_response('200 OK',[('Content-Type','text/html')])
#第一步,获取用户URL,debug模式下,在start_response加断点,然后浏览器访问在Variables下的environ中找
userUrl = environ['PATH_INFO']
print(userUrl)
urlpatterns = conf_url.routes() #第三步改造
#第二步改造
func = None
# for item in conf_url.url: #第三步注释掉
for item in urlpatterns:#第三步改造
if item[0] == userUrl:
func = item[1]
break if func:
return func()
else:
return [bytes('<h1>404</h1>',encoding='utf-8')] '''
#第二步,根据URL输入的不同返回不同的值,但是如果页面很多用if else就比较费劲了...改造下,新建一个conf.py在里边定义所有的URL模型
if userUrl == '/index/':
return [bytes('<h1>index</h1>',encoding='utf-8')]
elif userUrl == '/login/':
return [bytes('<h1>login</h1>',encoding='utf-8')]
elif userUrl == '/logout/':
return [bytes('<h1>logout</h1>',encoding='utf-8')]
else:
return [bytes('<h1>404 no found</h1>',encoding='utf-8')]
''' if __name__ == '__main__':
httpd = make_server('',8000,RunServer)
print('Serving http on port 8000...')
httpd.serve_forever()
server
#!/usr/local/bin/python3
#-*-coding:utf-8 -*-
#Author:Felix Song ;Environment:pycharm 5.0.3(python3.6) def index():
return [bytes('<h1>index</h1>',encoding='utf-8')]
# return [b'<h1>index</h1>']
def login():
return [bytes('<h1>login</h1>',encoding='utf-8')] #第三步改造,路由系统
def routes():
urlpatterns = (('/index',index),('/index',index),('/index',index))
return urlpatterns # #第二步改造,网页对照表
# url = (
# ('/index',index),
# ('/index',index),
# ('/index',index),
# )
conf_url

三、MVC框架(代码的归类)
Model包:对数据库操作
View包:存放html文件
login.html:
Controller包:业务逻辑处理
Account.py:账户相关控制放在这里
Admin.py:后台管理
四、MTV框架(代码的归类)
Model包:对数据库的操作
Template包:存放html文件
View包:业务逻辑
参考:
http://www.cnblogs.com/wupeiqi/articles/4491246.html
http://www.cnblogs.com/wupeiqi/articles/5237672.html
01 Web框架介绍的更多相关文章
- WEB框架介绍
python web框架分类 自己实现socket Tornado 借助wsgi实现socket Django:因为Django用的wsgi,所以不用操作socket. wsgi有很多,如下, MV ...
- python web框架介绍对比
Django Python框架虽然说是百花齐放,但仍然有那么一家是最大的,它就是Django.要说Django是Python框架里最好的,有人同意也有人 坚决反对,但说Django的文档最完善.市场占 ...
- Flask基础(01)-->Flask框架介绍
什么是Flask? 说白了,Flask就是一种web框架 在python中常用的框架有 flask django tornado 什么又是web框架呢? 为什么要使用web框架呢? 增强扩展性和稳定 ...
- web框架django初探
Web框架介绍 一般会分为两部分:服务器程序和应用程序.服务器程序负责对socket服务器进行封装,并在请求到来时,对请求的各种数据进行整理.应用程序则负责具体的逻辑处理.为了方便应用程序的开发,就出 ...
- [转载] 新兵训练营系列课程——平台服务部署及Web框架
原文: http://weibo.com/p/1001643875679132642345 大纲 微博平台主要负责微博基础功能.接下来将会介绍 平台的作用,以及服务提供的形式 平台Web服务的部署 平 ...
- 自定义python web框架
-- Bootstrap http://www.bootcss.com/ -- Font Awesome http://fontawesome.io/ -- bxslider http://bxsli ...
- 【python之路41】web框架
一.web框架介绍 一共有两种web框架 1.既包含socket又能逻辑处理 tornado框架 2.只能处理逻辑 Django bottle flask 二.web框架的本质 众所周知,对于所有的 ...
- Go语言Web框架gwk介绍4
Go语言Web框架gwk介绍 (四) 事件 gwk支持事件系统,但并没有硬编码有哪些事件,而是采用了比较松散的定义方式. 订阅事件有两种方式: 调用On函数或者OnFunc函数 func On(m ...
- Go语言Web框架gwk介绍 3
Go语言Web框架gwk介绍 (三) 上一篇忘了ChanResult ChanResult 可以用来模拟BigPipe,定义如下 type ChanResult struct { Wait syn ...
随机推荐
- thinkphp5部署到LAMP服务器显示Access denied.
问题:thinkphp5部署到LAMP服务器,首页正常访问,其余页面访问显示Access denied 解决:1.先把文件夹权限改为777 2. 进入服务器,改文件.将php.ini的值改成1
- Java中的"\t"
\t相当于表格制表符tab键,一个格内放8的整数倍的字符,根据显示的字符串长度,剩下的显示空格数.比如:字符串长度为1,那么距离下一个串的空格数应该是8-1=7:如果字符串长度为2,那么距离下一个串的 ...
- linux网卡软中断shell脚本
LANG=C;export LANG; service irqbalance stop >/dev/null 2>&1;chkconfig irqbalance off; bon ...
- SLF4J user manual 专题
System Out and Err Redirected to SLF4J The sysout-over-slf4j module allows a user to redirect all ca ...
- Memcached分布式原理
http://younglibin.iteye.com/blog/2043761 浅显易懂,值得一读
- 把一个HashMap的值全部取出来,放到两个数组中
先是从数据库中获取所有的值,返回一个HashMap类型的数据: <pre name="code" class="java"> private Has ...
- JAVA代码之斗地主发牌
理解很好理解,关键是思路 按照斗地主的规则,完成洗牌发牌的动作: 具体规则: 1. 组装54张扑克牌 2. 将54张牌顺序打乱 3. 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌. ...
- 最全的Spring注解详解
@Configuration : 配置类 == 配置文件,告诉Spring这是一个配置类@ComponentScan(value="com.atguigu",excludeFilt ...
- RxJava四个基础接口
Publisher Subscriber Subscription Processor ----------------------------------- public interface Pub ...
- 浅析HTML的元素类型及其转换
大家都知道html是由标签元素组成的,在了解元素的类型转换之前,让我们先来了解一下html的元素类型. 一.html元素类型分为两种:块级元素和内联元素,内联元素又被称为行内元素. 常见的块级元素有 ...