Python 架设网站


   Python开发一个服务器很方便,模块封装的很好。写了个简易网站。

   说一下大体思路。首先,写个5行的服务器启动,默认打开index.html。在首页中作超链接跳转,到脚本上。在脚本中现将数据打包(也可以理解为将数据从库中提取出来),然后写出网页,并设定好表单等元素。用户点击,进入下一个脚本......

 
    整体来说,通常采用MCV架构:
模型(Module):存储(以及有时处理Web应用数据的代码
视图(View):格式化和显示Web应用用户界面的代码
控制器(Controller):将Web应用”粘合“在一起并提供业务逻辑

M 为数据建模
Web服务器需要一个存储数据的副本。当Web应用启动时,需要把文件中的信息读出来。这里是一个打包好的Pickle,也可能是在程序启动时,搜集相应的文件打的包,因为可能要下发到本地。
小例子没使用数据库,使用pickle即可,注意I/O异常检测。
V 查看界面
使用First Head 书中带的yate.py来生成html。估计应该有其他更NB的PiPy。
C 控制代码
推荐采用以下结构:
WebApp:顶层文件夹是程序的名字,除了子文件夹,还包括web应用的index.html文件,图标,样式表等不适合放在其子文件夹中的内容。
cgi-bin:为Web应用写的所有代码需要放在这里。
data:所有数据在这里
image:如果有必要就创建一个这个文件,将图标、图片放在里面
templates:一些套用的模板

构建服务器必须的信息代码:
from http.server import HTTPServer,CGIHTTPRequestHandler
port = 8080
httpd = HTTPServer(('',port),CGIHTTPRequestHandler) #创建一个服务器
print("Strating simpleHttpd on port: "+str(httpd.server_port))
httpd.serve_forever() #弹出提示并启动服务器

    运行这个文件(命令为 python.exe XXX.py),则在访问相应端口时就会启动本层文件中的index.html。如果没有则显示层级文件。所以运行这几行代码就完成了服务器的架设了。
    操作的跳转则在html中做。例如:超链接<a href="cgi-bin/generate_list.py">timing data</a>
    这样就运行相应的脚本了。
    访问方式大家都知道了:在浏览器中输入:localhost:8080 就行了。

下面是一些能用到的小知识点:

文件操作:glob
查询一个文件列表:data_fales = glob.glob("../data/*.txt")

网页相关的库:cgi
    获取表单数据:数据将作为一个字典返回
    cgi.FieldStorate()
    athlete_name = form_data['which_athlete'].value

开启调试:使用cgitb可以将崩溃问题显示到网页上。
    import cgitb
    cgitb.enable()

将类方法表现为属性:@property
当类中的方法上用@property修饰时,这个类方法表现为一个属性。即使用"."来直接使用,而不用再加括号。

标准库string中包括一个名为Template的类,它支持简单的字符串替换:

with open('../templates/header.html') as headf:
head_text = headf.read()
header = Template(head_text)
return(header.substitute(title=the_title))


代码 http://download.csdn.net/detail/fansongy/5564213

  本篇博客出自阿修罗道,转载请注明出处:http://blog.csdn.net/fansongy/article/details/9076549



  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值