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. 单源最短路问题--朴素Dijkstra & 堆优化Dijkstra

    许久没有写博客,更新一下~ Dijkstra两种典型写法 1. 朴素Dijkstra     时间复杂度O(N^2)       适用:稠密图(点较少,分布密集) #include <cstdi ...

  2. HDU 5954 Do Not Pour Out

    #include<bits/stdc++.h> using namespace std; #define rep(i,a,b) for(int i=a;i<=b;++i) #defi ...

  3. asp.net下载大文件代码

    public void Down(string filepath, HttpResponse aResponse) { System.IO.Stream iStream = null; // Buff ...

  4. ubuntu 14.04安装pycharm 社区版

    https://blog.csdn.net/u013733432/article/details/54425831 转载于:https://www.cnblogs.com/liu-shiliu/p/1 ...

  5. ip地址与运算 ipcalc命令

    http://man.linuxde.net/ipcalc 转载于:https://blog.51cto.com/sonlich/2064133

  6. 图论--2-SAT--详解

    问题描述: 现有一个由N个布尔值组成的序列A,给出一些限制关系,比如A[x]AND A[y]=0.A[x] OR A[y] OR A[z]=1等,要确定A[0..N-1]的值,使得其满足所有限制关系. ...

  7. muduo网络库源码学习————Exception类

    Exception类是为异常捕获而设计,可以获得异常的信息以及栈的回溯信息 (原来的代码没有demangle成员函数,输出的格式比较难看,加了demangle成员函数,利用demangle成员函数可以 ...

  8. 8) drf 三大认证 认证 权限 频率

    一.三大认证功能分析 1)APIView的 dispath(self, request, *args, **kwargs) 2)dispath方法内 self.initial(request, *ar ...

  9. uniapp中引入less文件

    uniapp入门遇到的问题记录 在uniapp中从外部import less文件的话,首先需要在 工具>插件安装 中安装支持less语法的插件,然后在.vue文件中引入  @import url ...

  10. 学习Vue第二节,v-cloak,v-text,v-html,v-bind,v-on使用

    v-cloak,v-text,v-html,v-bind,v-on使用 <!DOCTYPE html> <html> <head> <meta charset ...