首页 > 编程语言 >python自带静态web服务器搭建代码实现

python自带静态web服务器搭建代码实现

时间:2022-12-01 19:58:21浏览次数:43  
标签:web return python server url found 自带 login

# coding:utf-8
from wsgiref.simple_server import make_server
#导入simple_server模块
   
#视图函数
def home(*args):
    return "home"
def login(*args):
    return "login"
def project(*args):
    return "project"

patterns = {"/":home,"/login":login,"/project":project}  #路由关系的字典

#定义一个application,遵循wsgi协议;
def app(env, start_response):#服务器接收到的客户端请求都会存储在env中,再传入到app进行处理,处理后再返回
    url = env.get("PATH_INFO") #从环境变量获取web端传来的url
    params = env.get("QUERY_STRING") #从环境变量获取web端传入的参数
    if (url is None) or (url not in patterns.keys()):
        start_response("404 not found", [("Content-Type", "text/plain")])
        return [b"page not found"]
    start_response("200 ok",[("Content-Type", "text/plain")])
    resp = patterns.get(url)
    if resp is None:         #key在路由关系里,但是velue为none的情况处理
        start_response("404 not found", [("Content-Type", "text/plain")])
        return [b"page not found"]
    return [resp(params).encode()] #执行视图函数



#实例化一个服务器设置ip为本机,端口为888,执行程序为上面的app
server = make_server("", 5000, app)
#开启一个服务器,默认0.5秒轮询,接收客户端请求
server.serve_forever()

 

启动:python simple_server.py

 

 

标签:web,return,python,server,url,found,自带,login
From: https://www.cnblogs.com/boye169/p/16942494.html

相关文章

  • python之路40 前端之 CSS 标签查询
    表单标签的补充说明基于form表单发送数据1.用于获取用户数据的标签至少应该含有name属性name属性相当于字典的键用户输入的数据会被保存到标签的value属性中......
  • Python学习(五):基本的数据结构——元组及常用方法
    1.元组的概述:元组与列表类似,由任意类型的元素组成序列;元组是不可变的(与列表不同处);2.元组的创建及检验:>>>tuple_1=(1,2,3,4)>>>tuple_1(1,2,3,4)>>>tuple_2......
  • web实验2
    基于华为鲲鹏云服务器CentOS中(或Ubuntu),使用LinuxSocket实现:1.Web服务器的客户端服务器,提交程序运行截图2.实现GET即可,请求,响应要符合HTTP协议规范ubuntu运行截图1.......
  • 二叉树前序遍历(python)
    具体做法:step1:准备数组用来记录遍历到的节点值,Java可以用List,C++可以直接用vector。step2:从根节点开始进入递归,遇到空节点就返回,否则将该节点值加入数组。step3:依次......
  • 二叉树中序遍历(python)
    def inorder(self, list: List[int], root: TreeNode):        # 遇到空节点则返回        if not root:            return ......
  • 删除有序链表中的重复元素(python)
    重复的留下一个def deleteDuplicates(self , head: ListNode) -> ListNode:        # write code here        #空链表        if ......
  • web实验1-socket
    基于华为鲲鹏云服务器CentOS中(或Ubuntu),使用LinuxSocket实现:1.time服务器的客户端服务器,提交程序运行截图timeserver代码#include<stdio.h>#include<unistd.h>#inc......
  • 实验四 Web服务器1-socket编程
    任务详情基于华为鲲鹏云服务器CentOS中(或Ubuntu),使用LinuxSocket实现:time服务器的客户端服务器,提交程序运行截图echo服务器的客户端服务器,提交程序运行截图,服务器把客......
  • web服务器2
    编译查看ip地址访问服务器部署到华为云服务器,浏览器用本机的服务器部署访问......
  • 进入python的世界_day43_前端——表单的补充、CSS的学习(选择器、样式调节)
    一、表单标签的补充关于form​ 如果没有value前端就不会发送数据到后端,字典必须齐备关于Input​ input一般前面要配一个label,然后labelfor属性绑定input的id,......