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协议的请求协议发送请求, ...
随机推荐
- 单源最短路问题--朴素Dijkstra & 堆优化Dijkstra
许久没有写博客,更新一下~ Dijkstra两种典型写法 1. 朴素Dijkstra 时间复杂度O(N^2) 适用:稠密图(点较少,分布密集) #include <cstdi ...
- 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 ...
- asp.net下载大文件代码
public void Down(string filepath, HttpResponse aResponse) { System.IO.Stream iStream = null; // Buff ...
- ubuntu 14.04安装pycharm 社区版
https://blog.csdn.net/u013733432/article/details/54425831 转载于:https://www.cnblogs.com/liu-shiliu/p/1 ...
- ip地址与运算 ipcalc命令
http://man.linuxde.net/ipcalc 转载于:https://blog.51cto.com/sonlich/2064133
- 图论--2-SAT--详解
问题描述: 现有一个由N个布尔值组成的序列A,给出一些限制关系,比如A[x]AND A[y]=0.A[x] OR A[y] OR A[z]=1等,要确定A[0..N-1]的值,使得其满足所有限制关系. ...
- muduo网络库源码学习————Exception类
Exception类是为异常捕获而设计,可以获得异常的信息以及栈的回溯信息 (原来的代码没有demangle成员函数,输出的格式比较难看,加了demangle成员函数,利用demangle成员函数可以 ...
- 8) drf 三大认证 认证 权限 频率
一.三大认证功能分析 1)APIView的 dispath(self, request, *args, **kwargs) 2)dispath方法内 self.initial(request, *ar ...
- uniapp中引入less文件
uniapp入门遇到的问题记录 在uniapp中从外部import less文件的话,首先需要在 工具>插件安装 中安装支持less语法的插件,然后在.vue文件中引入 @import url ...
- 学习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 ...