专栏首页Python程序员杂谈python无框架开发网站

python无框架开发网站

标题很有噱头,其实就是python的一个库的使用。之前记得有个网友问我说想学习python开发网站,但是不想用框架,我当时建议可以去学下cgi方面的东西。现在想来,我是错了,诚挚的给网友道歉!在python中有比cgi更高级的库来开发网站,那就是BaseHTTPServer。

在电脑和pad之间传文件的时候,我一般都会用python自带的SimpleHTTPServer(通过BaseHTTPServer实现的文件服务器)来完成:python -m SimpleHTTPServer 9999.简单却实用。

下面用这个库简单显示一个网站,只需要一个server.py文件:

#coding:utf-8
__author__ = 'the5fire'
from os import path

from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler 

class Handler(BaseHTTPRequestHandler):

    def do_GET(self):
        self.send_response(200)
        self.end_headers()     
        self.wfile.write(self.render('index'))
        self.wfile.write('\n') 
        return

    def render(self, name='index'):
        file_name = '%s.html' % name
        if path.isfile(file_name):
            html = open(file_name, 'r').read()
            return html            
        return None


if __name__ == '__main__':
    server = HTTPServer(('localhost', 8181), Handler)
    print 'Development server is running at http://127.0.0.1:8181/'
    print 'Starting server, use  to stop'
    server.serve_forever()

页面是用的之前介绍bootstrap时写的那个《bootstrap入门》保存为server.py同目录中的index.html文件,python server.py运行:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python项目练习五:虚拟茶话会

    几乎在学习、使用任何一种编程语言的时候,关于socket的练习从来都不会少,尤其是会写一些局域网的通信的东西。所以书上的这个项目刚好可以练习一下socket编程...

    the5fire
  • django 自定义后台图片上传

    今天终于是抽时间完成了后台上传图片的功能,确切的说是上传文件的功能。终于可以在blog方便的插入自己的图片了,之前不做这个功能是觉得服务器在国外,弄个图片上去图...

    the5fire
  • python项目练习四:新闻聚合

    书中的第四个练习,新闻聚合。现在很少见的一类应用,至少我从来没有用过,又叫做Usenet。这个程序的主要功能是用来从指定的来源(这里是Usenet新闻组)收集信...

    the5fire
  • Python面向对象之封装(04)

    封装是面向对象编程的一大特点,面向对象编程的第一步将属性和方法封装到一个抽象类中,外界使用类创建对象然后让对象调用方法,对象方法的的细节都被封装在类的内部。

    PM小王
  • python批量新建文件夹

    因为要经常写课备课,年级较多(G5-G11),每个年级的课程也比较多(1-100),每次都要新建文件夹,觉的比较麻烦,于是想着去写一个简单小程序去批量自动创建文...

    用户7054460
  • python面向对象,类

        是面向对象中的俩个重要概念,类是对事物的抽象,比如人类,球类。对象是事物的实例,比如足球,篮球。球类可以对球的特征和行为进行抽象,然后可以实例化一个真实...

    py3study
  • 面向对象 "一"

    Wyc
  • Python学习之面向对象「 中 」

    Python技术与生活认知的分享
  • Mycat 分布式事务的实现

    随着并发量、数据量越来越大及业务已经细化到不能再按照业务划分,我们不得不使用分布式数据库提高系统的性能。在分布式系统中,各个节点在物理上都是相对独立的,每个节点...

    博文视点Broadview
  • 教你如何高效地实现信息搜索

    搜索是为了解决一个问题,但解决问题可能不是通过一次提问就能搞定的,搜索也是如此,可能需要进行一系列搜索才能发现答案。

    1480

扫码关注云+社区

领取腾讯云代金券