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. 20199308《Linux内核原理与分析》第十一周作业

    缓冲区溢出漏洞实验 实验步骤 一.初始设置 1.Ubuntu 和其他一些 Linux 系统中,使用地址空间随机化来随机堆(heap)和栈(stack)的初始地址,这使得猜测准确的内存地址变得十分困难, ...

  2. Web性能优化之-深入理解TCP Socket

    什么是Socket?    大家都用电脑上网,当我们访问运维社区https://www.unixhot.com的时候,我们的电脑和运维社区的服务器就会创建一条Socket,我们称之为网络套接字.那么既 ...

  3. 如何高效使用vim

    Vim 是一款文本编辑器,被称为编辑器之神,非常适合在shell 中编辑代码,熟练的使用Vim,可以让你高效的编写代码. Vim 是Vi 的增强版,所有的类Unix 系统,都自带这两个工具,这两个工具 ...

  4. HDU 5725 Game

    1. 笔记 题意是求距离的期望(距离仍指连接两点且有效的路径长度的最小值).直观想象可以发现,该距离与曼哈顿距离相比最多多2(可以构造这样的路径). 答案=(任意两点曼哈顿距离的总和 - 至少有一点是 ...

  5. Visual Studio Code mac OS 安装 中文简体语言包

    先下载中文简体语言包 官网 https://marketplace.visualstudio.com/search?target=VSCode&category=Language%20Pack ...

  6. 27.rm命令

    rm命令可以删除指定的文件或目录.也可以将某个目录及其下属的所有文件及其子目录均删除掉.对于链接文件,只是删除整个链接文件,而原有文件保持不变. 选项:-f:强制删除. -r:递归处理,将指定目录下的 ...

  7. 10倍处理能力 阿里云推云上首个支持12层4K非编NAS产品

    5月23日,阿里云在2017云栖大会·成都峰会上正式推出了云上首个支持广电级非编的文件存储产品------NAS Plus,作为阿里云文件存储NAS的升级款,NAS Plus提供高达200Gbps的吞 ...

  8. angularJS中$http.get( ).success( )报错原因及解决方案

    一.问题描述: 电脑安装的angular1.6.7版本,项目中使用了$http.get( ).success( ),控制台报错: $http.get(...).success is not a fun ...

  9. Fourier Transform

    为了在统一框架里分析周期信号与非周期信号,可以给周期信号也建立傅里叶变换. 有两种方法求周期信号的傅里叶变换: **1. 利用傅里叶级数进行构造 ** 对于周期信号\(x(t)\),其傅里叶级数展开式 ...

  10. 升级vue项目中的element-ui的版本

    首先卸载项目中的element-ui 命令为: npm uninstall element-ui / cnpm uninstall element-ui 安装更新最新的element-ui 命令为 n ...