07 返回多个页面web框架

服务器server端python程序(不同页面版本):

 import socket

 server=socket.socket()

 server.bind(("127.0.0.1",8888))

 server.listen()

 def func_indexHtml(conn):

     with open("index.html","rb")as f:

         conn.send(f.read())

 def func_js(conn):

     with open("index.js", "rb")as f:

         conn.send(f.read())

 def func_css(conn):

     with open("index.css", "rb")as f:

         conn.send(f.read())

 def func_img(conn):

     with open("index.png", "rb")as f:

         conn.send(f.read())

 def func_ico(conn):

     with open("favicon.ico","rb")as f:

         conn.send(f.read())

 def func_html(conn):

     with open("another.html","rb")as f:

         conn.send(f.read())

 def respones_back(conn,path,func_mappers):

     conn.send(b"HTTP/1.1 200 ok \r\n\r\n")

     for mapper in func_mappers:

         if path==mapper[0]:

             mapper[1](conn)

             break

     else:

         conn.send(b"404 not found!")

     conn.close()

 func_mappers=[

     ("/",func_indexHtml),

     ("/index.js",func_js),

      ("/index.css",func_css),

      ("/index.png",func_img),

      ("/favicon.ico",func_ico),

      ("/another.html",func_html)]

 if __name__ == '__main__':

     while 1:

         conn,client_addr=server.accept()

         http_request=conn.recv(1024).decode("utf-8")

         path=http_request.split("\r\n")[0].split(" ")[1]

         print("path>>>",path)

         respones_back(conn,path,func_mappers)

服务器server端python程序(不同页面版本)

  index.html/another.html:


index.html:

 <!DOCTYPE html>

 <html lang="en">

 <head>

     <meta charset="UTF-8">

     <meta http-equiv="refresh" content="">

     <meta name="keywords" content="">

     <link rel="stylesheet" href="index.css">

     <link rel="icon" href="favicon.ico">

     <title>返回不同页面</title>

 </head>

 <body>

 <div id="d1">

     <h1>返回不同页面页面:本html页面引用了外部本地css样式和js代码(本地图片)</h1>   

 </div>

 <span><a href="another.html">点击跳转下一个页面</a></span>

 <img src="index.png" alt="本地图片" title="本地图片">

 </body>

 <script src="index.js"></script>

 </html>

index.html

another.html

 <!DOCTYPE html>

 <html lang="en">

 <head>

     <meta charset="UTF-8">

     <meta http-equiv="refresh" content="">

     <meta name="keywords" content="">

     <link rel="stylesheet" href="">

     <title>跳转的页面</title>

 </head>

 <body>

 <h2>跳转成功!</h2>

 </body>

 </html>

another.html

07 返回多个页面web框架的更多相关文章

  1. 08 返回动态页面web框架

    08 返回动态页面web框架 动态页面: 网页的内容是动态变化的,不是一直不变的(静态页面:每次显示的内容都是一样) 服务器server端python程序(动态页面版本): import socket ...

  2. web框架的本质

    一 web框架的本质及自定义web框架 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端,基于请求做出响应,客户都先请求,服务端做出对应的响 ...

  3. python django基础一web框架的本质

    web框架的本质就是一个socket服务端,而浏览器就是一个socker客户端,基于请求做出相应,客户端先请求,服务器做出对应响应 按照http协议的请求发送,服务器按照http协议来相应,这样的通信 ...

  4. web 框架的本质及自定义web框架 模板渲染jinja2 mvc 和 mtv框架 Django框架的下载安装 基于Django实现的一个简单示例

    Django基础一之web框架的本质 本节目录 一 web框架的本质及自定义web框架 二 模板渲染JinJa2 三 MVC和MTV框架 四 Django的下载安装 五 基于Django实现的一个简单 ...

  5. django基础一之web框架的本质

    一 web框架的本质及自定义web框架 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端,基于请求做出响应,客户都先请求,服务端做出对应的响 ...

  6. day 52 Django基础一之web框架的本质

    Django基础一之web框架的本质   django第一天 本节目录 一 web框架的本质及自定义web框架 二 模板渲染JinJa2 三 MVC和MTV框架 四 Django的下载安装 五 基于D ...

  7. 01.Django基础一之web框架的本质

    一 web框架的本质及自定义web框架 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端,基于请求做出响应,客户都先请求,服务端做出对应的响 ...

  8. day 65 Django基础一之web框架的本质

      Django基础一之web框架的本质   django第一天 本节目录 一 web框架的本质及自定义web框架 二 模板渲染JinJa2 三 MVC和MTV框架 四 Django的下载安装 五 基 ...

  9. Django基础一Web框架的本质

    我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端,基于请求做出响应,客户都先请求,服务端做出对应的响应,按照http协议的请求协议发送请求, ...

随机推荐

  1. auth权限逻辑

    下面本人为大家讲解一下如何实现auth权限, 第一步,新建Auth.php,复制下面的代码,把注释中的表都创建一下.把文件放到extend新建文件夹org放进去即可, <?php // +--- ...

  2. 打印js对象内容

    function writeObj(obj){ var description = ""; for(var i in obj){ var property=obj[i]; desc ...

  3. Testing for the End of a File (Windows 的异步 IO)

    The ReadFile function checks for the end-of-file condition (EOF) differently for synchronous and asy ...

  4. 如何调试 Inno Setup

    从命令行运行安装包,并加上 /log=filename

  5. Spring Cloud 系列之 Stream 消息驱动(一)

    在实际开发过程中,服务与服务之间通信经常会使用到消息中间件,消息中间件解决了应用解耦.异步处理.流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构. 不同中间件内部实现方式是不一样的,这些中间 ...

  6. Asp.Net Core 3.1学习-依赖注入、服务生命周期(6)

    1.前言 面向对象设计(OOD)里有一个重要的思想就是依赖倒置原则(DIP),并由该原则牵引出依赖注入(DI).控制反转(IOC)及其容器等概念.在学习Core依赖注入.服务生命周期之前,下面让我们先 ...

  7. 【Linux常见命令】ls命令

    ls - list directory contents ls命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录). 语法:  ls [OPTION]... [FILE]...  l ...

  8. 在线图片资源转换成Base64格式

    function getBase64Image(img) { var canvas = document.createElement("canvas"); canvas.width ...

  9. WebStorm 2019 3.3 安装及破解教程附汉化教程

    WebStorm2019 3.3 安装及破解教程附加汉化教程 安装包及破解补丁 链接: https://pan.baidu.com/s/19ATTAW3Tsm0huIJSqYChTw 提取码:1ei7 ...

  10. POJ1088 滑雪题解+HDU 1078(记忆化搜索DP)

    Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道 ...