一、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框架介绍的更多相关文章

  1. WEB框架介绍

    python  web框架分类 自己实现socket Tornado 借助wsgi实现socket Django:因为Django用的wsgi,所以不用操作socket. wsgi有很多,如下, MV ...

  2. python web框架介绍对比

    Django Python框架虽然说是百花齐放,但仍然有那么一家是最大的,它就是Django.要说Django是Python框架里最好的,有人同意也有人 坚决反对,但说Django的文档最完善.市场占 ...

  3. Flask基础(01)-->Flask框架介绍

    什么是Flask? 说白了,Flask就是一种web框架 在python中常用的框架有 flask django tornado 什么又是web框架呢?  为什么要使用web框架呢? 增强扩展性和稳定 ...

  4. web框架django初探

    Web框架介绍 一般会分为两部分:服务器程序和应用程序.服务器程序负责对socket服务器进行封装,并在请求到来时,对请求的各种数据进行整理.应用程序则负责具体的逻辑处理.为了方便应用程序的开发,就出 ...

  5. [转载] 新兵训练营系列课程——平台服务部署及Web框架

    原文: http://weibo.com/p/1001643875679132642345 大纲 微博平台主要负责微博基础功能.接下来将会介绍 平台的作用,以及服务提供的形式 平台Web服务的部署 平 ...

  6. 自定义python web框架

    -- Bootstrap http://www.bootcss.com/ -- Font Awesome http://fontawesome.io/ -- bxslider http://bxsli ...

  7. 【python之路41】web框架

    一.web框架介绍 一共有两种web框架 1.既包含socket又能逻辑处理 tornado框架 2.只能处理逻辑 Django bottle flask  二.web框架的本质 众所周知,对于所有的 ...

  8. Go语言Web框架gwk介绍4

    Go语言Web框架gwk介绍 (四)   事件 gwk支持事件系统,但并没有硬编码有哪些事件,而是采用了比较松散的定义方式. 订阅事件有两种方式: 调用On函数或者OnFunc函数 func On(m ...

  9. Go语言Web框架gwk介绍 3

    Go语言Web框架gwk介绍 (三)   上一篇忘了ChanResult ChanResult 可以用来模拟BigPipe,定义如下 type ChanResult struct { Wait syn ...

随机推荐

  1. 12pm 究竟是中午还是午夜

    12pm是中午=12noon12am是午夜=12midnightMN-midnight(午夜,中午) AM是after midnight开头字母 PM是prior to midnight开头字母正中午 ...

  2. Linux上传下载工具FileZilla(GNU软件) 文件传输和配置文件修改

  3. PAT甲级——1102 Invert a Binary Tree (层序遍历+中序遍历)

    本文同步发布在CSDN:https://blog.csdn.net/weixin_44385565/article/details/90577042 1102 Invert a Binary Tree ...

  4. <pre></pre>标签自动换行

    原文地址:https://www.cnblogs.com/qq78292959/p/4193142.html   pre { white-space: pre-wrap; word-wrap: bre ...

  5. 健康检查NET Core之跨平台的实时性能监控

    ASP.NET Core之跨平台的实时性能监控(2.健康检查)   前言 上篇我们讲了如何使用App Metrics 做一个简单的APM监控,最后提到过健康检查这个东西. 这篇主要就是讲解健康检查的内 ...

  6. PartTime_网址_内

    http://www.360doc.com/content/15/0930/12/28012971_502432950.shtml 2015所有适合程序员接私活的网站 请把 @ 换成 . 猪八戒    ...

  7. 1137 - Sin your life sin公式 + 枚举

    http://www.ifrog.cc/acm/problem/1137 和差化积公式, 变成2 * sin((x + y) / 2) * cos((x - y) / 2) + sin(n - (x ...

  8. @Autowired的使用--Spring规范解释,推荐对构造函数进行注释

    一 在编写代码的时候,使用@Autowired注解是,发现IDE报的一个警告,如下: Spring Team recommends "Always use constructor based ...

  9. C#实现程序单例日志输出

    对于一个完整的程序系统,一个日志记录是必不可少的.可以用它来记录程序在运行过程中的运行状态和报错信息.比如,那些不想通过弹框提示的错误,程序执行过程中捕获的异常等. 首先,在你的解决方案中,适当的目录 ...

  10. 【.Net MVC4 connectionString设置】获取SQL server数据库的连接字符串

    第一步:创建向导文件 在桌面创建一个txt文件,并将文件后缀改成“.udl”.    第二步:选择“提供程序”tab页 双击新创建的“.udl”文件,进入后选择“提供程序”tab页,选择“Micros ...