专栏名称: Python学习交流
每天更新,更新python相关的知识。希望诸君有所收获!
目录
相关文章推荐
Python爱好者社区  ·  史上最强!PINN杀疯了 ·  昨天  
Python爱好者社区  ·  DeepSeek创始人梁文锋个人履历 ·  3 天前  
Python爱好者社区  ·  离谱!下载DeepSeek最高判刑20年? ·  2 天前  
Python爱好者社区  ·  多模态,杀疯了 ·  2 天前  
Python开发者  ·  请立即拿下软考证书(政策风口) ·  4 天前  
51好读  ›  专栏  ›  Python学习交流

兼职程序员居然都能拿到25k一个月!使用Python搭建简单的服务器

Python学习交流  · 公众号  · Python  · 2018-03-07 15:00

正文

在服务器目录里随便丢了个index.html,浏览器访问http://127.0.0.1:8000/index.html:

成功!

第二步,用Python代码跑服务器

命令行一句话的事,用代码当然也很简单:

获取访问地址后,当然是根据后缀名区分请求类型并各自处理咯。

结合需求和逻辑,服务器需要依照先后顺序判断并处理以下几类:

1.请求的文件不存在时,抛回错误页面并提示错误原因;

2.请求指向某个数据接口时,执行指定的python脚本并返回结果;

3.请求指向某个文件时,返回该文件;

4.以上情况皆不符合,抛回错误页面并提示错误原因。

项目中对这些请求分别建立包含test和act两个方法的类并一次调用,类似于:

接下来就是实现每种请求的处理啦!以下几个是重点:

第五步,请求指定文件

前面已经拿到了请求文件的绝对地址,通过文件IO方法即可判断目标文件是否存在。

若文件存在,则读取文件内容并写入请求文件对象(通过self.wfile获取),对终端来说即是返回了该文件。

html文件里通常会包含css、js、图片、音频等各种引用,但实际访问时浏览器会自动对其所有引用文件单独发起get请求,所以服务器这边无需特殊对待,当做数个独立的文件请求来处理就行。

但是要注意,如果地址是类似url?param1=value1¶m2=value2的形式,判断和返回文件内容时需要先把后面的参数部分截掉。代码如下:

假如用到了其他类型文件,从网上找到对应的mimetype加进去就好。

往文件夹里丢了张小图片,试着访问下:

再试试访问下包含这个文件的页面:

成功!

最后一行send_content方法的功能是返回纯文本作为请求结果,其实就是一个mimetype为text/html的文件输出:







请到「今天看啥」查看全文


推荐文章
Python爱好者社区  ·  史上最强!PINN杀疯了
昨天
Python爱好者社区  ·  DeepSeek创始人梁文锋个人履历
3 天前
Python爱好者社区  ·  离谱!下载DeepSeek最高判刑20年?
2 天前
Python爱好者社区  ·  多模态,杀疯了
2 天前
Python开发者  ·  请立即拿下软考证书(政策风口)
4 天前
教育百师通  ·  夫妻之间,一定要吵架!
7 年前