04 返回静态文件的函数web框架
04 返回静态文件的函数web框架
服务器server端python程序(函数版):
import socket
server = socket.socket()
server.bind(("127.0.0.1", 8888))
server.listen()
def func_html(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 respones_back(conn,path):
conn.send("HTTP/1.1 200 ok \r\n\r\n".encode("utf-8"))
if path == "/":
func_html(conn)
elif path == "/index.js":
func_js(conn)
elif path == "/index.css":
func_css(conn)
elif path == "/index.png":
func_img(conn)
elif path == "/favicon.ico":
func_ico(conn)
conn.close() 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)
客户端浏览器访问:
在浏览器地址栏直接输入地址端口:127.0.0.1:8888
index.html:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<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>
<img src="index.png" alt="本地图片" title="本地图片">
</body>
<script src="index.js"></script>
</html>

04 返回静态文件的函数web框架的更多相关文章
- 05 返回静态文件的多线程web框架
05 返回静态文件的多线程web框架 服务器server端python程序(多线程版): import socket from threading import Thread,currentThrea ...
- 03 返回静态文件的高级web框架
03 返回静态文件的高级web框架 服务器server端python程序(高级版): import socket server=socket.socket() server.bind(("1 ...
- 06 返回静态文件的映射(函数/多线程)web框架
06 返回静态文件的映射(函数/多线程)web框架 服务器server端python程序(函数版): import socket server = socket.socket() server.bin ...
- Ubuntu16.04采用FastCGI方式部署Flask web框架
1 部署nginx 1.1 安装nginx服务 root@desktop:~# apt-get install nginx -y 1.2 验证nginx服务是否启动 root@des ...
- web框架的本质
一 web框架的本质及自定义web框架 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端,基于请求做出响应,客户都先请求,服务端做出对应的响 ...
- 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客户端,基于请求做出响应,客户都先请求,服务端做出对应的响 ...
随机推荐
- python学习13类2之封装
'''''''''面向对象三大特性:封装,继承,多态1.封装: 类中以_或者__的属性,都是私有属性,禁止外部调用.'''class Student(object): def __init__(sel ...
- 关于暴力破解的一些学习笔记(pikachu)
这几天的笔记都懒得发博客都写在本地了,随缘搬上来 什么是暴力破解 就是在攻击者不知道目标账号密码情况下的,对目标系统的常识性登陆 一般会采用一些工具+特定的字典 来实现高效的连续的尝试性登陆 一个有效 ...
- Windows环境,获取当前线程的ID,GetCurrentThreadId
GetCurrentThreadId 打印格式:0x%08lx 头文件:processthreadsapi.h (include Windows Server 2003, Windows Vista, ...
- QtConcurrent::run 运行类的成员函数
https://stackoverflow.com/questions/2152355/is-it-possible-to-use-qtconcurrentrun-with-a-function-me ...
- Spring Boot devtool的使用
文章目录 添加Spring Boot devtool依赖 默认属性 自动重启 Live Reload 全局配置 Spring Boot devtool的使用 Spring Boot为我们提供了一个便捷 ...
- Java多线程并发系列之闭锁(Latch)和栅栏(CyclicBarrier)
JAVA并发包中有三个类用于同步一批线程的行为,分别是闭锁(Latch),信号灯(Semaphore)和栅栏(CyclicBarrier).本贴主要说明闭锁(Latch)和栅栏(CyclicBarri ...
- RedHat Enterprise Linux 5.8 升级openssl
RedHat Enterprise Linux 5.8升级openssl,遇到以下问题,做下标记: 由于之前安装RedHat Enterprise Linux 5.8 时候只安装了服务器环境,没有安装 ...
- winform练习-通过遍历Control容器中的对象统一委托事件-楼盘选择器
1.窗体布局如下,一个label标签内容如下,一个btnSave按钮,用于保存,其他九个按钮用于选择楼盘. 2. 按钮存于Control容器中,编写方法遍历容器中的button,通过条件过滤掉不是bu ...
- php并发加锁
CleverCode在工作项目中,会遇到一些php并发访问去修改一个数据问题,如果这个数据不加锁,就会造成数据的错误.下面CleverCode将分析一个财务支付锁的问题. 1 没有应用锁机制 1.1 ...
- System Call
内容 设计系统调用,将系统的相关信息(CPU型号.操作系统的版本号.系统中的进程等类似于Windows的任务管理器的信息)以文本形式列表显示于屏幕,并编写用户程序予以验证. 思想 系统调用是应用程序和 ...