08 返回动态页面web框架

动态页面:

网页的内容是动态变化的,不是一直不变的(静态页面:每次显示的内容都是一样)

服务器server端python程序(动态页面版本):

 import socket

 import time

 server=socket.socket()

 server.bind(("127.0.0.1",8888))

 server.listen()

 # 返回页面显示每次访问时间,这是一个动态的,主要在返回内容是替换某些特定内容

 def func_html(conn):

     with open("index.html","rb")as f:

         data=f.read().decode("utf-8")

     # 将网页中的#time#时间占位字符串进行替换后再返回(每次请求响应返回的结果都不一样)

     t=time.strftime("%Y-%m-%d %X")

     data=data.replace("#time#",str(t))

     conn.send(data.encode("utf-8"))

 def func_ico(conn):

     with open("favicon.ico","rb")as f:

         conn.send(f.read())

 def response_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)

     conn.close()

 func_mappers=[

     ("/",func_html),

     ("/favicon.ico",func_ico)

 ]

 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("parh>>>",path)

         response_back(conn,path,func_mappers)

服务器server端python程序(动态页面版本)

客户端浏览器访问:

在浏览器地址栏直接输入地址端口:127.0.0.1:8888

index.html:


 <!DOCTYPE html>

 <html lang="en">

 <head>

     <meta charset="UTF-8">

     <link rel="icon" href="favicon.ico">

     <style>

         span{

             background-color: yellow;

             color: red;

             font-size: 20px

         }

     </style>

     <title>动态页面</title>

 </head>

 <body>

     <div>

         <h1>本次访问时间为:

             <span>#time#</span>

         </h1>

     </div>

 </body>

 </html>

index.html

    

08 返回动态页面web框架的更多相关文章

  1. 07 返回多个页面web框架

    07 返回多个页面web框架 服务器server端python程序(不同页面版本): import socket server=socket.socket() server.bind(("1 ...

  2. python django基础一web框架的本质

    web框架的本质就是一个socket服务端,而浏览器就是一个socker客户端,基于请求做出相应,客户端先请求,服务器做出对应响应 按照http协议的请求发送,服务器按照http协议来相应,这样的通信 ...

  3. Python之路【第十八章】:Web框架

    Web框架本质 1.众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端 #!/usr/bin/env python # -*- codin ...

  4. Python开发【十八章】:Web框架

    Web框架本质 1.众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端 #!/usr/bin/env python # -*- codin ...

  5. 浅谈 Web框架

    一.Web框架本质 所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端 二.Web框架功能 socket收发消息 —— wsgiref(测试).uwsgi(线上 ...

  6. Python web框架开发 - WSGI协议

    浏览器进行http请求的时候,不单单会请求静态资源,还可能需要请求动态页面. 那么什么是静态资源,什么是动态页面呢? 静态资源 : 例如html文件.图片文件.css.js文件等,都可以算是静态资源 ...

  7. 使用Python开发轻量级的Web框架以及基于WSGI的服务器来实现一个网站页面

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 目录 一丶项目说明 二丶数据准备 三丶使用网络TCP开发一个基于WSGI协议的Web服务器 四丶使用python3开发一个轻量级的 ...

  8. SpringMVC内容略多 有用 熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。

    熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构 ...

  9. Django-手撸简易web框架-实现动态网页-wsgiref初识-jinja2初识-python主流web框架对比-00

    目录 自己动手实现一个简易版本的web框架 手撸一个web服务端 根据请求 url 做不同的响应处理 基于wsgiref模块实现服务端 用wsgiref 模块的做的两件事 拆分服务端代码 支持新的请求 ...

随机推荐

  1. Scala的存在类型

    Scala的存在类型 存在类型也叫existential type,是对类型做抽象的一种方法.可以在你不知道具体类型的情况下,就断言该类型存在. 存在类型用_来表示,你可以把它看成java中的?. 下 ...

  2. UVALive 7509 Dome and Steles

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

  3. js之用IndexOf返回指定字符串的次数

    代码 var Str = "strs,strs,stras,str,strs,strs"; var subStr ="strs" ; var count = 0 ...

  4. c语言-----劫持自己02

    在上一节 c语言-----劫持原理01 已经叙述了劫持原理,下边正式进入劫持实战 1. 需要实现的功能 在c语言中 system("notepad") 可以打开一个记事本 syst ...

  5. Vs Code中炫酷写代码插件Power Mode的安装配置

    扩展栏搜索 Power Mode 安装 安装后重启vs code 文件->首选项->设置 搜索setting.json,点击在setting.json中编辑 打开之后在右侧用户设置里添加以 ...

  6. Java泛型和编译优化的一个例子

    public class Main { public static void main(String[] args) { ArrayList<String> strList = new A ...

  7. RF(ride 工具使用)

    1.新建项目 project,工程 suite,用例 testcase 新建 project:file -> new project,输入工程名,Type 选择 directory,选择工程存放 ...

  8. Spring IOC的核心机制:实例化与注入

    上文我们介绍了IOC和DI,IOC是一种设计模式,DI是它的具体实现,有很多的框架都有这样的实现,本文主要以spring框架的实现,来看具体的注入实现逻辑. spring是如何将对象加入容器的 spr ...

  9. electron-vue 运行项目时会报Electron Security Warning (Node.js Integration with Remote Content)警告

    使用electron-vue时,运行项目总会出现如下警告: 解决方法:在src/renderer/main.js中加入: process.env['ELECTRON_DISABLE_SECURITY_ ...

  10. Kubernetes笔记(二):了解k8s的基本组件与概念

    前文 Kubernetes笔记(一):十分钟部署一套K8s环境 介绍了如何快速搭建一个k8s系统.为了继续使用k8s来部署我们的应用,需要先对k8s中的一些基本组件与概念有个了解. Kubernete ...