07 返回多个页面web框架
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框架的更多相关文章
- 08 返回动态页面web框架
08 返回动态页面web框架 动态页面: 网页的内容是动态变化的,不是一直不变的(静态页面:每次显示的内容都是一样) 服务器server端python程序(动态页面版本): import socket ...
- web框架的本质
一 web框架的本质及自定义web框架 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端,基于请求做出响应,客户都先请求,服务端做出对应的响 ...
- python django基础一web框架的本质
web框架的本质就是一个socket服务端,而浏览器就是一个socker客户端,基于请求做出相应,客户端先请求,服务器做出对应响应 按照http协议的请求发送,服务器按照http协议来相应,这样的通信 ...
- web 框架的本质及自定义web框架 模板渲染jinja2 mvc 和 mtv框架 Django框架的下载安装 基于Django实现的一个简单示例
Django基础一之web框架的本质 本节目录 一 web框架的本质及自定义web框架 二 模板渲染JinJa2 三 MVC和MTV框架 四 Django的下载安装 五 基于Django实现的一个简单 ...
- django基础一之web框架的本质
一 web框架的本质及自定义web框架 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端,基于请求做出响应,客户都先请求,服务端做出对应的响 ...
- day 52 Django基础一之web框架的本质
Django基础一之web框架的本质 django第一天 本节目录 一 web框架的本质及自定义web框架 二 模板渲染JinJa2 三 MVC和MTV框架 四 Django的下载安装 五 基于D ...
- 01.Django基础一之web框架的本质
一 web框架的本质及自定义web框架 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端,基于请求做出响应,客户都先请求,服务端做出对应的响 ...
- day 65 Django基础一之web框架的本质
Django基础一之web框架的本质 django第一天 本节目录 一 web框架的本质及自定义web框架 二 模板渲染JinJa2 三 MVC和MTV框架 四 Django的下载安装 五 基 ...
- Django基础一Web框架的本质
我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端,基于请求做出响应,客户都先请求,服务端做出对应的响应,按照http协议的请求协议发送请求, ...
随机推荐
- 前端日期时间处理建议使用Momen
使用方法 下载: http://momentjs.cn/downloads/moment.js 多语言版本:http://momentjs.cn/downloads/moment-with-local ...
- JVM原理以及深度调优(二)
JVM内存分配 内存分配其实真正来讲是有三种的.但对于JVM来说只有两种 栈内存分配: 大家在调优的过程中会发现有个参数是-Xss 默认是1m,这个内存是栈内存分配, 在工作中会发现栈OutOfMem ...
- Python封装应用程序的最佳项目结构是什么?
Python封装应用程序的最佳项目结构是什么? 转载来源于stackoverflow:https://stackoverflow.com/questions/193161/what-is-the-be ...
- 全栈必备Log日志
Log日志,不论对开发者自身,还是对软件系统乃至产品服务都是非常重要的事情.每个开发者都接触过日志,以至于每个人对日志的了解都会有所不同. 什么是日志 日志是什么呢?老码农看来,日志是带有明确时间标记 ...
- RF(IF 判断)
1.关键字 Run Keyword If,格式如下: ELSE 必须大写 ELSE 前面需要加 "..." 表示缩进 Run Keyword If a == b log T ...
- 《C程序设计语言》 练习2-1
问题描述 编写一个程序以确定分别由signed及unsigned限定的char.short.int及long类型变量的取值范围.采用打印标准头文件中的相应值以及直接计算两种方式实现 Write a p ...
- 字典树变形 A - Gaby And Addition Gym - 101466A
A - Gaby And Addition Gym - 101466A 这个题目是一个字典树的变形,还是很难想到的. 因为这题目每一位都是独立的,不会进位,这个和01字典树求最大的异或和是不是很像. ...
- (3).mybatis编写工具类
编写工具类 复用与重构 复用:使用方法与函数,复用的类,构成JAR包.(工具类属于复用) 一.创建工具类(一般在src下创建util包,在util包下创建工具类). 例如:MybatisUtilds为 ...
- 如何理解三大运营商发布的《5G消息白皮书》?
如何理解三大运营商发布的<5G消息白皮书>? 2020年4月8日中国移动.中国电信.中国联通携手华为.小米.vivo.OPPO.中兴等11家终端厂商联合发布了<5G消息白皮书> ...
- 王颖奇 20171010129《面向对象程序设计(java)》第十六周学习总结
实验十六 线程技术 实验时间 2018-12-8 理论部分: 并发⚫ 线程的概念⚫ 中断线程⚫ 线程状态⚫ 多线程调度⚫ 线程同步 1.线程的概念 程序是一段静态的代码,它是应用程序执行的蓝本. 进 ...